Ubuntu 20.04 无法启动MySQL服务,systemctl状态报错如何解决?
Ubuntu 20.04 MySQL启动失败排查处理方案
你遇到的报错核心是MySQL的systemd启动前置脚本/usr/share/mysql/mysql-systemd-start pre执行失败,尚未进入MySQL主进程启动阶段,可按照以下步骤排查处理:
1. 优先查看详细错误日志定位根因
执行以下命令查看MySQL原生错误日志,可获取最精准的失败原因:
sudo tail -n 50 /var/log/mysql/error.log
常见的错误提示对应处理方案如下:
2. 常见问题处理方法
配置文件语法错误
执行命令校验配置合法性:mysqld --validate-config若返回语法错误提示,按照报错位置修改
/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/目录下的配置文件,修改后重新校验直到无报错即可。数据目录权限异常
执行命令查看数据目录权限:ls -ld /var/lib/mysql正常输出的所有者和组应为
mysql:mysql,若权限不符,执行以下命令修正:sudo chown -R mysql:mysql /var/lib/mysql sudo chmod 750 /var/lib/mysql磁盘空间或inode耗尽
执行命令检查磁盘占用:df -h df -i若对应分区使用率为100%,清理多余的日志、备份等无用文件释放空间即可。
3306端口被占用
执行命令检查端口占用情况:sudo lsof -i :3306若有其他进程占用3306端口,停掉对应占用进程,或修改MySQL配置文件中的
port参数更换为未被占用的端口。数据文件损坏
若日志提示表损坏、数据文件不合法,可尝试执行以下命令修复:# 先停止MySQL服务 sudo systemctl stop mysql # 安全模式启动MySQL跳过权限校验 sudo mysqld_safe --skip-grant-tables --skip-networking & # 修复所有数据库表 mysqlcheck -r --all-databases # 修复完成后杀除安全模式进程,正常启动MySQL sudo pkill mysqld_safe sudo systemctl start mysql启动次数超限拦截
报错中Start request repeated too quickly是因为多次启动失败触发了systemd的频率限制,执行以下命令重置计数后再启动即可:sudo systemctl reset-failed mysql.service sudo systemctl start mysql.service
注意:如果需要重新安装MySQL修复问题,请先备份
/var/lib/mysql目录所有数据,避免数据丢失。
内容的提问来源于stack exchange,提问作者Charisman Afriandi
相关产品推荐
相关产品推荐

