mysql错误日志默认开启但需手动确认路径与配置;通过show variables like 'log_error'验证启用状态,my.cnf中配置log_error绝对路径并设权限,用logrotate配合usr1信号实现轮转,最后重启服务并验证。

MySQL 错误日志默认是开启的,但具体路径、是否启用、是否自动轮转等需根据版本和配置手动确认或调整。重点在于确保错误日志能稳定记录启动失败、连接异常、崩溃等关键信息,便于排查问题。
确认错误日志是否已启用
登录 MySQL 后执行:
SHOW VARIABLES LIKE 'log_error';
若返回非空值(如 /var/log/mysql/error.log),说明已启用;若为空或为 OFF,则未启用。注意:5.7+ 默认开启,但路径可能因安装方式(包管理器 vs 二进制)而异。
在 my.cnf 中显式配置错误日志路径
编辑 MySQL 配置文件(通常为 /etc/my.cnf 或 /etc/mysql/my.cnf),在 [mysqld] 段下添加或修改:
- log_error = /var/log/mysql/error.log(推荐使用绝对路径)
- 确保目录存在且 MySQL 进程有写权限:chown mysql:mysql /var/log/mysql,chmod 755 /var/log/mysql
- 避免使用相对路径或 /tmp 下路径,防止重启后丢失或权限问题
启用错误日志自动轮转(Linux 系统)
MySQL 本身不自动轮转错误日志,需借助系统工具:
- 配置 logrotate,例如新建 /etc/logrotate.d/mysql-error:
/var/log/mysql/error.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 640 mysql mysql
sharedscripts
postrotate
if [ -f /var/run/mysqld/mysqld.pid ]; then
kill -USR1 `cat /var/run/mysqld/mysqld.pid`
fi
endscript
}
其中 USR1 信号会通知 MySQL 重新打开错误日志文件(需 MySQL 支持,5.5.3+ 均支持)。
验证配置并重载生效
修改配置后必须重启或重载服务:
- 先检查配置语法:mysqld --defaults-file=/etc/my.cnf --validate-config(8.0.14+ 支持)
- 重启服务:systemctl restart mysqld(或 service mysql restart)
- 再次运行 SHOW VARIABLES LIKE 'log_error'; 确认路径已更新
- 手动触发一次错误(如输入错误密码登录)后检查日志文件是否有新内容










