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

Ubuntu系统mysql.service自动重启调度问题:磁盘满后MySQL无法启动

MySQL磁盘耗尽后启动失败(systemd自动重启循环)

服务器磁盘空间耗尽后,启动MySQL Server时出现mysql.service自动重启调度的报错,执行service mysql restart命令后,MySQL仍无法正常启动,相关系统日志如下:

-- 定义者: systemd
-- 支持: http://www.ubuntu.com/support
-- 
-- cron.service的停止任务已完成。
-- 
-- 任务ID为21001,任务结果为成功。
Jun 05 12:49:38 server-instance systemd[1]: mysql.service: 已调度重启任务,重启计数器为21。
-- 主题: 单元的自动重启已被调度
-- 定义者: systemd
-- 支持: http://www.ubuntu.com/support
-- 
-- 根据单元配置的Restart=设置,mysql.service单元的自动重启已被调度。
Jun 05 12:49:38 server-instance systemd[1]: 已停止MySQL社区服务器。
-- 主题: mysql.service的停止任务已完成
-- 定义者: systemd
-- 支持: http://www.ubuntu.com/support
-- 
-- mysql.service的停止任务已完成。
-- 
-- 任务ID为21002,任务结果为成功。
Jun 05 12:49:38 server-instance systemd[1]: 正在启动MySQL社区服务器...
-- 主题: mysql.service的启动任务已开始执行
-- 定义者: systemd
-- 支持: http://www.ubuntu.com/support
-- 
-- mysql.service的启动任务已开始执行。
-- 
-- 任务ID为21002。

解决步骤

1. 优先释放磁盘空间

  • 清理系统冗余文件:执行apt autoremove清理无用安装包,journalctl --vacuum-size=1G压缩清理系统日志
  • 定位大文件:用du -sh /*找出占用空间最大的目录,逐步排查删除不必要的大文件(如旧备份、临时文件、过期日志)
  • 清理MySQL日志:如果是MySQL相关日志占用空间,可删除过期的二进制日志(binlog),执行PURGE BINARY LOGS BEFORE 'YYYY-MM-DD HH:MM:SS';(需先确认该时间前的日志已无备份需求)

2. 停止systemd自动重启循环

执行命令停止MySQL服务,避免循环重启干扰后续操作:

systemctl stop mysql

3. 检查并修复MySQL相关问题

  • 确认数据目录权限:确保mysql用户拥有数据目录的读写权限
chown -R mysql:mysql /var/lib/mysql
  • 修复表损坏:
    • 针对MyISAM表,执行修复命令:myisamchk -r /var/lib/mysql/*.MYI
    • 针对InnoDB表,编辑MySQL配置文件(通常为/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf),添加innodb_force_recovery=1到[mysqld]段,尝试启动MySQL;启动成功后再移除该参数并重启

4. 验证启动

磁盘空间释放并完成修复后,启动MySQL并检查状态:

systemctl start mysql
systemctl status mysql

同时查看MySQL错误日志(通常路径为/var/log/mysql/error.log),确认是否存在其他启动障碍。

内容的提问来源于stack exchange,提问作者Arun Maurya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:50:30