You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:12:01