删除数据库时出错(不能 rmdir './someDB/', errno: 17)

Posted

技术标签:

【中文标题】删除数据库时出错(不能 rmdir \'./someDB/\', errno: 17)【英文标题】:Error dropping database (can't rmdir './someDB/', errno: 17)删除数据库时出错(不能 rmdir './someDB/', errno: 17) 【发布时间】:2018-04-27 17:03:35 【问题描述】:

这太疯狂了。我已经尝试了所有方法,但仍然抛出相同的错误。

我有一个数据库,希望它在mysql-Server 上运行。在数据库的开头:

DROP SCHEMA IF EXISTS someDB;
CREATE SCHEMA someDB;
USE someDB;

当我尝试SHOW DATABASES LIKE 'someDB'; 时,它确认了它的存在。

我试过了:

    chmod 获取它的完整路径/var/lib/mysql/someDB/someDB.sql 停止MySQL-Server,删除someDB文件夹并重新启动服务器。 我删除了整个MySQL-Server 并重新安装了它。

经过几个小时的尝试,我真的需要你的帮助。

编辑: 回答Y. Collin Comment,当我运行sudo ls -la ./someDB时,它返回:

total 20
drwxrwxr-x 2 ubuntu ubuntu  4096 Nov 14 16:53 .
drwxrwxrwx 5 mysql  mysql   4096 Nov 14 16:53 ..
-rwxrwxrwx 1 ubuntu ubuntu 12243 Nov 14 16:53 someDB.sql

【问题讨论】:

你有chmod -R someDB 目录? ***.com/questions/4584458/… @Pete 我整天都在关注您提供的链接中的答案,但还没有运气。是的,我已经递归地更改了权限。 从字里行间看,您似乎已将还原文件放入 SomeDB 模式的目录中。那是相当愚蠢的。把它移到别的地方。而且它不应该归mysql所有,它应该归你登录的用户所有。 【参考方案1】:

如果谁运行以下命令,你会看到什么:

ls -la ./someDB/

如果里面有像example这样的文件,你应该先删除它。

感谢@Beel

【讨论】:

【参考方案2】:

原来我有一个逻辑错误。

someDB.sql 文件中,我使用USE 语句。但是,我正在尝试使用以下命令运行数据库:

mysql -u root -p someDB < someDB.sql

这是绝对错误的,因为上面的语句提示USEsql文件中的第一行(即DROP SCHEMA...)冲突。

正确的做法是:

mysql -u root -p < someDB.sql

因为USE 语句已经放在文件中了!

【讨论】:

以上是关于删除数据库时出错(不能 rmdir './someDB/', errno: 17)的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中删除数据库时出错(不能 rmdir './tract',errno: 66)

MySQL:删除数据库时出错(errno 13;errno 17;errno 39)

一天一个Linux基础命令之目录管理类命令rmdir

一天一个Linux基础命令之目录管理类命令rmdir

一天一个Linux基础命令之目录管理类命令rmdir

删除空目录命令 - rmdir