由于某些原因需要删除mysql数据库中的fafa数据库,但该数据库无法删除,错误提示如下:
mysql> drop database fafa;
ERROR 1010 (HY000): Error dropping database (can't rmdir './fafa/', errno: 17)
根据提示,无法删除数据库的原因是无法删除fafa目录,这里我在data目录下找到了错误提示中的fafa目录。
root@BJPHP1:/# find /data/ -name "fafa"
/data/mysql/fafa
/data/mysql1/fafa
/data/var/lib/mysql/fafa
/data/backup/fafa
/data/backup/fafa/2013-10-18_22-28-24/fafa
/data/backup/fafa/2014-04-17/fafa
进入fafa目录下,将该目录下的原有文件备份。最后清空fafa目录,如下所示
root@BJPHP1:/data/var/lib/mysql# cd fafa/
root@BJPHP1:/data/var/lib/mysql/fafa# ls -al
total 595584
drwxr-xr-x 2 root root 4096 Mar 8 06:59 .
drwx------ 16 mysql mysql 36864 Mar 26 06:25 ..
-rw-r--r-- 1 root root 609826885 Apr 17 2014 message.tgz
root@BJPHP1:/data/var/lib/mysql/fafa# mv message.tgz /home/SmallQ/
此处我观察到该目录的属主属组均为root,不确定是否有影响,因为我将fafa目录的属主属组均改为mysql。
root@BJPHP1:/data/var/lib/mysql/fafa# chown -R mysql.mysql fafa
并将fafa目录的权限改为755
root@BJPHP1:/data/var/lib/mysql/fafa# chmod -R 755 fafa
此时,我可以正常删除mysql数据库中的fafa数据库了。
mysql> drop database fafa;
Query OK, 0 rows affected (0.00 sec)