删除数据库时出错(不能 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
这是绝对错误的,因为上面的语句提示USE
与sql
文件中的第一行(即DROP SCHEMA...
)冲突。
正确的做法是:
mysql -u root -p < someDB.sql
因为USE
语句已经放在文件中了!
【讨论】:
以上是关于删除数据库时出错(不能 rmdir './someDB/', errno: 17)的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL 中删除数据库时出错(不能 rmdir './tract',errno: 66)