2010-01-12 110 views
18

我用下面的sytanx如何删除数据库

drop database filmo; 

,并得到了以下错误:

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

任何想法..

+0

什么是您正在使用的数据库引擎?你的问题并不清楚。 – gyurisc 2010-01-12 04:18:16

+0

AskAboutGadgets.com:查看标签。 – tanerkuc 2010-01-12 04:23:56

+0

@enbuyukfener:查看编辑历史。 – Jon 2010-01-12 04:33:44

回答

23

这意味着有在该目录中没有有关文件到MySQL。另一个问题,虽然我怀疑它,但是没有足够的权限。您可以从文件系统中删除该目录。

+1

我有同样的错误 - 并确实有一个文件在该目录中 - 删除后删除工作。 – zby 2011-06-30 08:54:03

0

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

11

得到相同的错误。这个固定为我在Ubuntu 10.04:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

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

+0

在MAC上为我工作... mysql> drop database DB_NAME; ERROR 1010(HY000):Error drop database(can not rmdir'./DB_NAME',errno:66) 1)其中mysql->/usr/local/mysql/bin/mysql 2)进入DB文件夹: cd/usr/local/mysql/data/ 3)删除数据库的DB文件夹(本例中为“DB_NAME”)。 – xgMz 2012-01-30 21:40:27

+0

它正是您安装mysql的数据库,您将在其中找到XXXXX目录。 – Nerve 2013-03-16 10:52:40

+0

在Ubuntu 12.04/MySQL 5.5.38上为我工作 – DanH 2014-08-05 13:55:30

1

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

7

须藤室射频的/ var/lib中/ MySQL的/ db_production

其中 db_production是数据库

记住使用 “命令” 的名称。

0

我有这个问题,它似乎是关于你的mysql用户权限。 尝试通过root用户做它,如果它没有工作,使用此命令为根,以盛大的下降许可,您的用户:

grant drop 
execute on *.* to 'your-user-name'@'user-ip'; 
1

这是我做的在Mac OS X小牛:

  1. 停止MySQL服务
  2. /usr/local/mysql/data
1

1删除目录)rm -rf /var/lib/mysql/data/*** 保持数据的目录,RM数据/内容

2)使用

mysql -uxxx -pyyy 
    $ drop database data; 

然后这将是确定再次重新创建数据的数据库。 希望它会帮助, 注意,直接删除数据目录是无用的,无论你重新启动mysqld或不。

-2
drop database <database_name>; 
0

这里是模拟你的错误

1,创建于MySQL数据目录

mkdir /data/mysql/data/filmo 

目录2.检查的最后一个项目

[[email protected]]# 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的方式。在其中创建转储文件

[[email protected]]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql 

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

[[email protected]]# mysql -uroot -p123456 -e"show databases;" 

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

5.当我把这个“数据库”,这里是你的错误

[[email protected]]# mysql -uroot -p123456 -e"drop database filmo;" 
ERROR 1010 (HY000) at line 1: Error dropping database (can't rmdir './filmo/', errno: 17) 
0

,当你有错误的表空间的错误通常是in ibdata1文件(用于innodb引擎) innodb引擎存储ibdata1文件内部的一些设置

如果您最近已将文件复制/移动到其他服务器或试图恢复,那么你应该移动ibdata1文件,然后你可以删除数据库。 我假设你有像表不存在的问题,现在删除数据库? 如果是的话,停止MySQL服务,然后删除文件,然后再次创建数据库,这将帮助你。 而且这里这可能帮助你 [Error Dropping Database (Can't rmdir '.test\', errno: 17)

0

不知道在那里我得到了(道歉)这个答案,但是,虽然与上述类似,它有如何找到MySQL数据目录中的其他信息:

mysql -e "select @@datadir"

我假设这是通用的,并返回mysql/data的路径。如果移动到该目录(在Unix/Linux/MacOS的命令):

cd path_to_mysql/data

,你会发现这对尼克斯可以这样做,你要删除,数据库:

sudo rm -rf DB_NAME

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