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

时间:2017-11-14 16:44:55

标签: mysql ubuntu-server

太疯狂了。我已经尝试了所有的方法,但它仍然会引发同样的错误。

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

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

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

我试过了:

  1. chmod获取其完整路径/var/lib/mysql/someDB/someDB.sql
  2. 停止MySQL-Server,删除someDB文件夹并重新启动服务器。
  3. 我删除了整个MySQL-Server并重新安装了它。
  4. 经过几个小时的尝试,我真的需要你的帮助。

    修改: 回答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
    

2 个答案:

答案 0 :(得分:0)

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

ls -la ./someDB/

如果其中有一个文件,就像在此example中一样,您应该先将其删除。

归功于@Beel

答案 1 :(得分:0)

原来我犯了一个逻辑错误。

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

mysql -u root -p someDB < someDB.sql

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

正确的做法是:

mysql -u root -p < someDB.sql

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