远程修复方法:登录服务器SSH,进入MySQL数据目录,通常是/var/lib/mysql/,找到报错的数据库文件夹,手动rm -rf 数据库名,然后再去MySQL里DROP DATABASE。
解决方案一
这个错误是因为数据库目录下有文件或目录无法删除,通常是权限问题或有锁文件。远程登录服务器,cd /var/lib/mysql/,ls -la 看数据库文件夹权限,如果是mysql用户所有,sudo rm -rf 数据库文件夹名,然后mysql里drop database。
解决方案二
ER_DROP_DATABASE_FAILED_RMDIR_MANUALLY表示手动删除目录失败。进服务器,kill掉所有连接这个数据库的进程,netstat -tlnp | grep mysql 找进程,kill -9 PID,然后rm -rf /var/lib/mysql/数据库名。
解决方案三
远程修复:ssh root@服务器IP,apt update && apt install mysql-client,mysql -u root -p,show databases; 然后退出mysql,cd /var/lib/mysql,rm -rf 问题数据库文件夹,回到mysql drop database 数据库名;。
解决方案四
常见原因是ibdata1文件太大或权限不对。远程:find /var/lib/mysql -name "数据库名",sudo chown -R mysql:mysql /var/lib/mysql/数据库名,rm -rf 数据库名,mysql drop。
解决方案五
如果目录非空,手动清空:ssh进服务器,cd /var/lib/mysql/数据库名,rm -rf *,然后cd ..,rmdir 数据库名,mysql里drop database。
FAQ
Q: 为什么会出现这个错误?
A: 数据库目录下有残留文件、权限问题或进程占用。
Q: 远程怎么进MySQL数据目录?
A: ssh root@IP,cd /var/lib/mysql/ 或 /usr/local/mysql/data/。
Q: 删除后还能恢复数据库吗?
A: 手动删了就没了,提前备份。
Q: 权限不够怎么办?
A: sudo chown -R mysql:mysql 数据目录,然后删除。