首页主机资讯Ubuntu MariaDB故障排查指南

Ubuntu MariaDB故障排查指南

时间2025-12-11 02:28:03发布访客分类主机资讯浏览1005
导读:Ubuntu MariaDB 故障排查指南 一 快速定位流程 服务状态与端口 检查运行状态:sudo systemctl status mariadb 查看监听端口:ss -lntp | grep 3306(或 netstat) 日...

Ubuntu MariaDB 故障排查指南

一 快速定位流程

  • 服务状态与端口
    • 检查运行状态:sudo systemctl status mariadb
    • 查看监听端口:ss -lntp | grep 3306(或 netstat)
  • 日志优先
    • 系统日志:sudo tail -n50 /var/log/syslog
    • 错误日志:sudo tail -n50 /var/log/mysql/error.log
    • 内核与启动消息:dmesg | tail -n50
  • 资源与文件系统
    • 资源:top/htopfree -hdf -h
    • 目录权限与占用:ls -ld /var/lib/mysqldu -sh /var/lib/mysql
  • 访问控制与策略
    • AppArmor:sudo aa-status、必要时将 mysqld 切换为 complain 模式:sudo aa-complain /usr/sbin/mysqld
    • UFW 防火墙:sudo ufw status、如需开放端口:sudo ufw allow 3306/tcp
  • 配置核对
    • 主配置:/etc/mysql/mariadb.conf.d/50-server.cnf(如 bind-addressportdatadirsocket

二 常见症状与修复

  • 服务无法启动
    • 查看错误日志定位具体原因(语法错误、权限、磁盘满、端口占用等)
    • 端口冲突:确认是否已有实例占用 3306,必要时停止旧进程或修改端口后重启
    • 配置错误:核对 50-server.cnf 中关键参数与包含路径,避免重复/错误配置
    • 权限/属主:确保 /var/lib/mysql 属主为 mysql:mysql,目录权限正确
    • 资源不足:检查 磁盘空间内存,InnoDB 缓冲池过大可能导致启动失败
  • 本地/远程连接被拒绝
    • 服务与端口:确认 mariadb 运行且 3306 监听
    • 绑定地址:如需远程访问,将 bind-address=0.0.0.0;仅本地则保持 127.0.0.1
    • 防火墙:如使用 UFW,放行 3306/tcp
    • 用户权限:确保存在允许来源主机的账户,例如 ‘myuser’@‘%’ 或明确的主机段
  • 忘记 root 密码
    • 停止服务:sudo systemctl stop mariadb
    • 安全模式启动:sudo mysqld_safe --skip-grant-tables --skip-networking &
    • 登录并重置:在 MariaDB 中执行 FLUSH PRIVILEGES; ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘NewPass!’;
    • 重启:sudo systemctl restart mariadb
  • 认证插件导致登录失败
    • 现象:如 ERROR 1524 (HY000): Plugin ‘unix_socket’ is not loaded
    • 处理:在跳过权限模式中将 root 认证方式改为 mysql_native_password,或重新安装 unix_socket 插件后再调整策略
  • 表损坏或异常
    • MyISAM 表:使用 myisamchk -c -r /var/lib/mysql/db/tbl.MYI 修复索引
    • InnoDB 建议优先用 mysqlcheck 或逻辑备份恢复,避免直接拷贝数据文件

三 关键配置与网络检查

  • 配置文件与目录
    • 服务器配置:/etc/mysql/mariadb.conf.d/50-server.cnf
    • 客户端配置:/etc/mysql/mariadb.conf.d/50-client.cnf
    • 数据目录:/var/lib/mysql(确保 mysql:mysql 属主与权限)
  • 常用参数建议
    • 字符集:[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci
    • InnoDB 缓冲池:建议为物理内存的 50%–70%(如 innodb_buffer_pool_size=2G
    • 连接数:根据负载设置 max_connections(如 500
  • 远程访问与防火墙
    • 绑定地址:需要远程时将 bind-address=0.0.0.0;仅本地保持 127.0.0.1
    • UFW:如需开放端口执行 sudo ufw allow 3306/tcp;云主机还需检查安全组规则

四 维护与恢复建议

  • 备份与恢复
    • 逻辑备份:mysqldump -u root -p --single-transaction --routines --triggers --databases 库名 > backup.sql
    • 恢复:mysql -u root -p < backup.sql
  • 安全加固
    • 运行 sudo mysql_secure_installation:设置 root 密码、移除匿名用户、禁止 root 远程、删除测试库、重载权限
  • 监控与日志
    • 持续关注 /var/log/mysql/error.log/var/log/syslog,设置监控告警
    • 定期应用安全更新:sudo apt update & & sudo apt upgrade mariadb-server
  • 风险提示
    • 修改 bind-address 与创建远程用户会扩大攻击面,务必配合 防火墙白名单强密码最小权限 策略

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu MariaDB故障排查指南
本文地址: https://pptw.com/jishu/769006.html
Ubuntu MariaDB使用中常见问题 Kubernetes网络配置Ubuntu指南

游客 回复需填写必要信息