![在 Ubuntu 上的 MySQL 5.1 中删除数据库时出错](https://linux22.com/image/19236/%E5%9C%A8%20Ubuntu%20%E4%B8%8A%E7%9A%84%20MySQL%205.1%20%E4%B8%AD%E5%88%A0%E9%99%A4%E6%95%B0%E6%8D%AE%E5%BA%93%E6%97%B6%E5%87%BA%E9%94%99.png)
我在用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
,大多数情况下它都可以使用。
检查这些: