以下是Debian系统下MySQL故障的排查技巧:
-
检查服务状态
sudo systemctl status mysql # 查看服务是否运行 sudo systemctl start mysql # 启动服务(若未运行) -
查看错误日志
sudo tail -f /var/log/mysql/error.log # 实时查看错误信息,定位启动失败或异常原因 -
验证配置文件
检查/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf,确保datadir、socket、bind-address等配置正确。 -
处理权限问题
sudo chown -R mysql:mysql /var/lib/mysql # 确保数据目录属主为mysql sudo chmod -R 750 /var/lib/mysql # 设置正确权限 -
排查系统资源
- 使用
top/htop查看CPU、内存占用是否异常。 - 用
df -h检查磁盘空间是否充足,清理或扩容(若不足)。
- 使用
-
检查端口与网络
sudo netstat -tuln | grep 3306 # 确认3306端口未被占用 sudo ufw allow 3306/tcp # 开放防火墙端口(若需远程访问) -
使用MySQL工具诊断
mysqladmin:查看服务器状态(如mysqladmin -u root -p status)。mysqlcheck:检查和修复表(如sudo mysqlcheck -u root -p --all-databases --auto-repair)。
-
分析慢查询与性能
- 启用慢查询日志(
slow_query_log=1),通过SHOW PROCESSLIST或pt-query-digest分析低效SQL。 - 优化配置参数(如
innodb_buffer_pool_size)并定期维护表(OPTIMIZE TABLE)。
- 启用慢查询日志(
-
处理特殊场景
- 若服务无法启动,尝试手动创建
/var/run/mysqld目录并赋予权限(针对特定错误)。 - 依赖问题可通过
sudo apt --fix-broken install修复。
- 若服务无法启动,尝试手动创建
提示:操作前备份重要数据,若无法解决可参考官方文档或社区论坛。