温馨提示×

Linux MariaDB故障排查技巧

小樊
50
2025-08-23 15:41:33
栏目: 云计算

以下是Linux MariaDB故障排查的核心技巧,覆盖常见场景及对应解决方法:

一、基础状态检查

  1. 服务状态与日志

    • 使用 sudo systemctl status mariadb 查看服务运行状态,失败时通过 sudo journalctl -u mariadb/var/log/mysql/error.log 查看详细错误信息。
    • 典型错误如“权限不足”“端口冲突”“配置文件语法错误”可直接从日志定位。
  2. 配置文件验证

    • 检查 /etc/my.cnf/etc/mysql/my.cnf,重点关注 portdatadirsocket 等参数是否正确,修改后需重启服务。

二、常见问题排查

  1. 服务无法启动

    • 权限问题:确保数据目录(如 /var/lib/mysql)属主为 mysql,权限为 755,使用 sudo chown -R mysql:mysql /var/lib/mysql 修复。
    • 端口冲突:通过 sudo netstat -tulnp | grep 3306 检查端口占用,修改配置文件中端口或停止冲突进程。
    • 磁盘空间不足:用 df -h 查看,清理空间或扩展磁盘。
  2. 连接异常

    • 网络问题:用 pingtelnet 测试网络连通性,检查防火墙是否放行 3306 端口。
    • 用户权限:通过 mysql -u root -p 登录后执行 SHOW GRANTS FOR '用户名'@'主机';,确保权限正确。
  3. 性能瓶颈

    • 慢查询分析:启用慢查询日志(slow_query_log=1),通过 SHOW PROCESSLISTpt-query-digest 定位低效SQL,优化索引或重写语句。
    • 资源不足:用 tophtop 监控CPU/内存使用,调整 innodb_buffer_pool_size(建议设为物理内存60%-70%)。
  4. 数据异常

    • 表损坏:使用 CHECK TABLE 表名 检查,REPAIR TABLE 表名 修复,严重时从备份恢复。
    • 二进制日志占满:通过 SHOW BINARY LOGS 查看日志大小,用 PURGE BINARY LOGS BEFORE '日期' 清理。

三、高级排查工具

  • 监控工具:使用 iotopPercona Monitoring and Management 实时监控数据库负载。
  • 安全策略调整:若因SELinux/AppArmor阻止服务,可临时禁用(sudo setenforce 0sudo aa-disable)并调整策略。

四、预防措施

  • 定期备份数据,建议使用 mysqldump 或专业备份工具。
  • 通过 mysql_upgrade 定期更新系统表,确保兼容性。

操作前建议:备份重要数据,优先在测试环境验证解决方案。若问题复杂,可结合错误日志联系官方支持。
参考来源:

0