吃饭的时候吃饭,睡觉的时候睡觉,工作的时候工作,学习的时候学习......
❝ 删除数据库出错:Can't rmdir errno 17 ❞
作者:彭新 日期:2014-05-12 分类:MySQL 点击: 来源:www.wo81.com

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源,谢谢 !

删除一个测试数据库test时,竟然无法删除,报错如下:
mysql> drop database test;
ERROR 1010 (HY000): Error dropping database (can't rmdir '.\test\', errno: 17)
 
使用phpmyadmin删除,依然无法删除,返回结果如下:
#1010 - Error dropping database (can't rmdir '.\test\', errno: 17) 
 
使用Navicat Fro MySQL删除,返回结果如下:
1010 - Error dropping database (can't rmdir '.\test\', errno: 17) 
 
去数据库目录mysql5.5.8\data\test下一看,竟然只有一个文件.empty,其它的文件已经被删除了,而数据库也没有任何表了。
果断删除.empty文件,重新drop database test,成功删除!!!
 
于是我做了如下实验,每次试验都需重建数据库test,然后在mysql5.5.8\data\test放置不同类型的文件。
实验1:
新建文件夹abc,会导致drop数据库test失败,报错1010 - Error dropping database (can't rmdir '.\test\', errno: 17) 。删掉文件夹abc,重新drop数据库,可成功删除。
实验2:
新建文件test.txt,会导致drop数据库test失败,报错1010 - Error dropping database (can't rmdir '.\test\', errno: 17) 。删掉文件text.txt,重新drop数据库,可成功删除。
实验3:
将别的数据库的所有frm,myd,myi文件拷贝过来,发现这些表也可以正常打开,drop数据库test,可成功删除。
实验4:
将别的数据库的所有frm文件拷贝过来,发现这些表也打不开了,drop数据库test,可成功删除。
实验5:
将别的数据库的所有myd和myi文件拷贝过来,会导致drop数据库test失败,报错1010 - Error dropping database (can't rmdir '.\test\', errno: 41) 。将这两个文件删除,重新drop数据库,可成功删除。
实验6:
新建了文件tab1.frm,drop数据库test,可成功删除。
实验7:
新建了3个空文件test.frm,test.myd,test.myi,会导致drop数据库test失败,报错1010 - Error dropping database (can't rmdir '.\test\', errno: 41) 。发现frm文件被删除了,test.myd和test.myi还在,将这两个文件删除,重新drop数据库,可成功删除。
 
结论:
1、别的数据库的frm,myd,myi文件直接拷贝过来即可打开,数据也都有,这意味着只要这些文件在,数据就不会丢失。不过貌似只有frm文件的表拷贝过来是打不开的。
2、请不要在数据库文件夹下面创建文件或者目录。
3、.empty文件时wampserver安装时自动创建的,可能是为了让用户不要删除test库才创建的吧。

本文链接:删除数据库出错:Can't rmdir errno 17

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源,谢谢 !