我在用MySQL v5.1在乌班图机器。
我有一个名为 my_db 的数据库,我想删除它,所以我执行命令:
mysql> drop database my_db;
ERROR 1010 (HY000): Error dropping database (can't rmdir './my_db/', errno: 17)
正如你在上面看到的,有一个错误......为什么我不能删除数据库?
聚苯乙烯我知道所有与数据库相关的文件都位于/var/lib/mysql/my_db/
答案1
一个快速测试程序显示errno = 17
“文件存在”(只是一个观察,我并不希望您在发布之前弄清楚它)。
我发现这个线程在 mysql 站点上,这表明您有/var/lib/mysql/my_db/
mysql 未创建(或它认为未创建)的文件。列出文件(您需要sudo
)并查看其中有什么。尝试将其中的任何内容移至临时目录(如果您确实确定不需要它们,则删除它们),然后重试。
答案2
检查所有者和权限,/var/lib/mysql/my_db
我立即想到的是运行 mysql 守护程序的用户帐户没有删除该文件夹的适当权限。
您可以杀死mysqld
并以 root 身份启动它,然后尝试删除数据库进行测试。
答案3
据我所知,您必须检查以下内容:
- 检查目录以查看是否有任何与数据库无关的不必要文件。因为
DROP database
只删除数据库文件,然后删除目录,并且由于您可能还有与数据库文件无关的其他文件,所以它不会删除它们,因此无法删除目录。 - 如果这不起作用,请尝试使用 删除数据库
PHPMYADMIN
,大多数情况下它都可以使用。
检查这些: