/var分区已满,无法停止MySQL以迁移数据库数据求助
解决MySQL无法正常停止的问题
我之前也碰到过好几次这种情况——明明执行了停止命令,MySQL进程却还赖着不走。别着急,咱们一步步来搞定它:
先试试用systemd的原生命令来停止,毕竟现在很多发行版都是用systemd管理服务的,可能比
/etc/init.d的脚本更靠谱:systemctl stop mysql.service执行完后用这条命令确认状态:
systemctl status mysql.service如果上面的方法还是没效果,那就用MySQL自带的工具来优雅停止,这是最安全的方式,不会损坏数据:
mysqladmin -u root -p shutdown输入MySQL的root密码后,等待几秒,再用
ps -A | grep mysql检查进程是否消失。要是连
mysqladmin都不管用,那就只能手动终止进程了,但记得先杀mysqld,再杀mysqld_safe,而且尽量先用正常终止,万不得已再用强制终止(强制终止可能会导致数据损坏):- 先终止mysqld进程(你的PID是13028):
kill 13028 - 等个3-5秒,再检查进程,如果还在,就用强制终止:
kill -9 13028 - 最后终止mysqld_safe进程(你的PID是12683):
同样,要是没反应就加kill 12683-9。
- 先终止mysqld进程(你的PID是13028):
确认所有MySQL相关进程都消失后,你就可以继续迁移数据到
/data目录了。记得迁移完成后:- 修改MySQL配置文件(通常是
/etc/mysql/my.cnf或者/etc/mysql/mysql.conf.d/mysqld.cnf)里的datadir参数,改成新的路径(比如datadir = /data/mysql)。 - 确保新的
/data目录权限是mysql:mysql:chown -R mysql:mysql /data/mysql - 然后启动MySQL:
启动后检查状态和数据是否正常,确保迁移成功。systemctl start mysql.service
- 修改MySQL配置文件(通常是
内容的提问来源于stack exchange,提问作者yarek
相关产品推荐
相关产品推荐

