温馨提示×

MySQL故障排查在Debian中怎么做

小樊
45
2025-12-28 13:19:01
栏目: 云计算

Debian 下 MySQL 故障排查实操手册

一 快速定位步骤

  • 检查服务状态与启动失败原因:执行sudo systemctl status mysql,若未运行可尝试sudo systemctl start mysql;同时查看系统日志journalctl -u mysql与 MySQL 错误日志**/var/log/mysql/error.log获取具体报错。必要时用ps aux | grep mysql**确认进程是否存在。
  • 核对关键配置:检查**/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf中的datadir、socket、bind-address、port**等关键项是否一致且合法。
  • 资源与端口网络:用top/htopdf -h排查CPU/内存/磁盘是否不足;用sudo netstat -tuln | grep 3306确认端口监听,依据防火墙放行策略开放3306/tcp(如使用ufwfirewalld)。

二 常见故障与修复对照表

症状 快速检查 修复建议
服务无法启动 查看**/var/log/mysql/error.log**、journalctl -u mysql 依据报错修复配置或数据目录问题
端口被占用 **netstat -tuln grep 3306**
权限或目录错误 检查**/var/lib/mysql**属主与权限 执行chown -R mysql:mysql /var/lib/mysqlchmod -R 750 /var/lib/mysql
配置文件错误 语法与路径(如datadir、socket 修正my.cnf并重启
磁盘空间不足 df -h 清理或扩容,释放空间
防火墙阻断 本地可连、远程不通 使用ufw allow 3306/tcpfirewall-cmd放行
主从复制异常 SHOW SLAVE STATUS\G 关注Slave_IO_Running/Slave_SQL_Running与错误提示
表损坏 mysqlcheck报错 执行mysqlcheck --auto-repair修复
依赖或安装损坏 apt 报错 执行sudo apt --fix-broken install修复依赖

三 性能与慢查询排查

  • 开启与分析慢查询:临时开启slow_query_log=1、设置long_query_time=1,使用mysqldumpslowpt-query-digest定位最耗时的 SQL;必要时在配置文件中永久启用。
  • 执行计划与索引:对慢 SQL 使用EXPLAIN查看type、key、rows、Extra(如出现Using filesort/Using temporary需优化);必要时用EXPLAIN FORMAT=JSON获取更细信息。
  • 实时负载与锁:用SHOW FULL PROCESSLIST查看长时间运行与阻塞语句;用SHOW ENGINE INNODB STATUS\G分析死锁与锁等待;结合performance_schemasys库识别高消耗 SQL、全表扫描与临时表使用。

四 主从复制与高可用检查

  • 复制链路健康:在主库执行SHOW MASTER STATUS,在从库执行SHOW SLAVE STATUS\G,重点检查Slave_IO_Running/Slave_SQL_Running是否为Yes,并排查Seconds_Behind_Master延迟与Last_Error信息。
  • 常见延迟与中断处理:关注备库IOPS/规格是否不足、主库是否存在大事务/DDL、以及MDL 锁无主键表导致的复制阻塞;必要时拆分大事务、在业务低峰执行 DDL、或终止阻塞会话恢复同步。

五 安全操作与回退建议

  • 变更前先备份:对数据目录与配置做完整备份,变更失败可快速回滚。
  • 在线调整需谨慎:动态变量(如slow_query_log、long_query_time)可在线修改,涉及重启的参数应评估窗口期与影响。
  • 无法恢复时的处置:在确保有有效备份的前提下,考虑重新安装或恢复至最近可用备份,避免数据二次损坏。

0