22

我使用了以下 sytanx

drop database filmo; 

并得到以下错误:

ERROR 1010 (HY000): Error dropping database (can't rmdir './filmo/', errno: 17)

有任何想法吗..

4

13 回答 13

24

这意味着该目录中有与 MySQL 无关的文件。尽管我对此表示怀疑,但另一个问题是权限不足。您可以从文件系统中删除该目录。

于 2010-01-12T04:19:43.620 回答
14

得到同样的错误。这在 Ubuntu 10.04 中为我修复了它:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

其中 XXXXX 是有问题的数据库名称。

于 2011-04-23T13:18:02.913 回答
7

sudo rm -rf /var/lib/mysql/db_production

其中 db_production 是数据库的名称

记得使用“sudo”。

于 2013-01-25T10:12:50.313 回答
1

这就是我在 Mac OS X Mavericks 上所做的:

  1. 停止 MySQL 服务
  2. 删除目录/usr/local/mysql/data
于 2014-03-02T21:29:47.967 回答
1

1)rm -rf /var/lib/mysql/data/*** 保留数据目录,rm数据内容/

2) 使用

 mysql -uxxx -pyyy
   $ drop database data;

那么重新创建数据库就可以了。希望它会有所帮助,注意,无论您是否重新启动mysqld ,直接删除数据目录都是无用的。

于 2014-12-02T06:32:29.290 回答
1

我已经更改了 mysql 文件夹( windows server c:\xampp\mysql)的权限并且现在正在工作,我已经创建并删除了数据库,没有任何错误。

于 2012-12-07T14:09:36.023 回答
1

这是非常古老的,但要检查的另一件事是数据文件夹。在 Windows 上,应该是 C:\ProgramData\MySQL<Version>\Data。就我而言,我收到“找不到文件夹”错误。

我发现不知何故我的数据库的数据文件夹已被删除。我想这是用户错误。我添加了一个带有数据库名称的空白文件夹,当我返回 DROP 表时,它按预期进行。我花了一段时间才知道发生了什么,但希望这能避免其他人的心痛。

于 2021-02-14T05:02:23.060 回答
1

这是一种模拟错误的方法

1.在MySQL数据目录上创建目录

mkdir /data/mysql/data/filmo

2.检查最后一项

[root@linux]# ls -ltrh /data/mysql/data/
总用量 173M
-rw-rw---- 1 mysql mysql  48M 4月  17 11:00 ib_logfile1
drwx------ 2 mysql mysql 4.0K 4月  17 11:00 performance_schema
drwx------ 2 mysql mysql 4.0K 4月  17 11:00 mysql
-rw-rw---- 1 mysql mysql   56 4月  18 06:01 auto.cnf
drwxr-xr-x 2 root  root  4.0K 4月  18 07:25 backup
-rw-rw---- 1 mysql mysql   19 4月  23 07:29 mysql-bin.index
-rw-rw---- 1 mysql mysql    5 4月  23 07:29 oldboylinux.pid
-rw-rw---- 1 mysql mysql  19K 4月  23 07:29 error.log
-rw-rw---- 1 mysql mysql  76M 4月  23 09:56 ibdata1
-rw-rw---- 1 mysql mysql  48M 4月  23 09:56 ib_logfile0
-rw-rw---- 1 mysql mysql 5.9K 4月  23 10:21 mysql-bin.000001
drwxr-xr-x 2 root  root  4.0K 4月  23 10:36 filmo

3.在其中创建一个转储文件

[root@linux]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql

4.MySQL会相信filmo是一个数据库

[root@linux]# mysql -uroot -p123456 -e"show databases;"

+--------------------+
| Database           |
+--------------------+
| information_schema |
| backup             |
| filmo              |
| mysql              |
| performance_schema |
+--------------------+

5.当我删除这个“数据库”时,这是你的错误

[root@linux]# mysql -uroot -p123456 -e"drop database filmo;"
ERROR 1010 (HY000) at line 1: Error dropping database (can't rmdir './filmo/', errno: 17)
于 2016-04-25T05:29:35.223 回答
0

我遇到了这个问题,它似乎与您的 mysql 用户权限有关。如果确实有效,请尝试由 root 用户执行此操作,以 root 身份使用此命令来授予您的用户的删除权限:

grant drop
execute on *.* to 'your-user-name'@'user-ip';
于 2013-07-29T05:43:24.657 回答
0

您对该目录(和父目录)有写权限吗?您可能需要递归地使目录可写(Windows 中的安全选项卡或 nix 中的 chmod)并删除任何非 db 文件,如“Thumbs.db”

于 2010-01-12T04:21:36.050 回答
0

当您在 ibdata1 文件(用于 innodb 引擎)中有错误的 TABLESPACE 时,通常会出现该错误。innodb 引擎在 ibdata1 文件中存储一些设置

如果您最近将文件复制/移动到其他服务器或尝试恢复,那么您应该移动 ibdata1 文件,然后您可以删除数据库。我假设您遇到表不存在的问题,现在正在删除数据库?如果是,则停止 mysql 服务,然后删除文件,然后再次创建数据库,这将对您有所帮助。进一步这里这可能会帮助你[错误删除数据库(无法rmdir'.test\',errno:17)

于 2016-05-12T23:05:54.313 回答
0

不知道我从哪里得到这个答案(道歉),但是,虽然类似于上面,它有如何找到 mysql 数据目录的附加信息:

mysql -e "选择@@datadir"

我假设这是通用的,并返回 mysql/data 的路径。如果您移动到该目录(unix/linux/macOS 命令):

cd path_to_mysql /数据

您将找到要删除的数据库,在 nix 上可以通过以下方式完成:

sudo rm -rf DB_NAME

在 MacOS X (10.9.5) 上,我不必停止 MySQL,但这在其他平台上可能会有所不同。

于 2017-08-09T08:59:41.697 回答
-2
drop database <database_name>;
于 2015-02-27T07:58:41.730 回答