MySQL错误日志默认关闭,需在my.cnf的[mysqld]段配置log_error路径并重启服务;通过SHOW VARIABLES LIKE 'log_error'验证是否启用,路径需存在且MySQL用户有写权限。

MySQL 错误日志默认不开启,需手动配置才能记录启动、关闭、崩溃及关键错误信息。它和慢查询日志、通用查询日志是独立的,路径与开关由 my.cnf(或 my.ini)中的参数控制。
确认错误日志是否已启用
登录 MySQL 后执行:
SHOW VARIABLES LIKE 'log_error';
若返回空值或值为 NULL,说明错误日志未启用;若返回具体路径(如 /var/log/mysqld.log),说明已启用且可查该文件。
在配置文件中设置错误日志路径
编辑 MySQL 配置文件(Linux 通常为 /etc/my.cnf 或 /etc/mysql/my.cnf,Windows 为 my.ini),在 [mysqld] 段落下添加或修改:
log_error = /var/log/mysql/error.log
注意:
- 路径目录必须存在,且 MySQL 进程(如
mysql用户)有写权限 - 不建议写到根目录或系统关键路径,推荐放在
/var/log/mysql/或/data/mysql/logs/等专用目录 - 无需指定
log_error_verbosity即可记录基础错误,但如需更详细信息(如语句上下文),可额外设为3
重启 MySQL 生效并验证
保存配置后重启服务:
systemctl restart mysqld(CentOS/RHEL)
sudo service mysql restart(Ubuntu/Debian)
重启后再次运行 SHOW VARIABLES LIKE 'log_error';,确认路径正确;然后用 tail -f /your/log/path 实时观察日志是否开始写入新内容(如启动信息、警告等)。
常见问题处理
如果日志没生成,检查以下几点:
- 配置文件是否写在正确的
[mysqld]段落下(不是[client]或[mysql]) - MySQL 是否因配置错误无法启动?查看系统日志:
journalctl -u mysqld -n 50 --no-pager - 路径父目录权限是否正确?例如
chown -R mysql:mysql /var/log/mysql,chmod 755 /var/log/mysql - SELinux(RHEL/CentOS)是否阻止写入?临时禁用测试:
setenforce 0










