MariaDB在Ubuntu上的故障排查方法
- 检查服务状态
使用sudo systemctl status mariadb查看服务是否运行,获取错误提示。 - 查看日志文件
- 主要日志路径:
/var/log/mysql/error.log,使用sudo tail -n 50 /var/log/mysql/error.log查看最近错误。 - 系统日志:
/var/log/syslog,排查系统级错误。
- 主要日志路径:
- 验证配置文件
检查/etc/mysql/my.cnf或/etc/mysql/mariadb.conf.d/*.cnf,确保bind-address、port等配置正确,路径可写。 - 处理权限问题
确保数据目录(/var/lib/mysql)和日志目录属主为mysql,权限为755:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 755 /var/lib/mysql。 - 排查端口与网络
- 检查
3306端口是否监听:sudo netstat -tuln | grep 3306。 - 确保防火墙(
ufw/iptables)允许该端口流量。
- 检查
- 解决AppArmor限制
若启用AppArmor,可临时禁用:sudo aa-disable /etc/apparmor.d/usr.sbin.mysqld,然后重启服务。 - 应对磁盘空间不足
使用df -h检查磁盘空间,清理无用文件或扩展分区。 - 手动启动获取详细错误
尝试手动启动:sudo mysqld --user=mysql,直接查看终端输出的系统调用错误。 - 重置Root密码(若遗忘)
- 停止服务:
sudo systemctl stop mariadb - 跳过权限启动:
sudo mysqld_safe --skip-grant-tables & - 登录后执行:
UPDATE mysql.user SET Password=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;。
- 停止服务:
提示:若以上步骤无法解决,建议根据错误日志中的具体信息进一步排查,或参考MariaDB官方文档。