MySQL错误日志默认开启且不可禁用,需确认log_error配置路径并确保目录存在、权限正确;修改my.cnf中log_error为绝对路径后重启服务;轮转需手动mv+flush-logs。

MySQL 错误日志默认是开启的,无法禁用,但路径和文件名可能未显式配置,导致不易定位。关键是要确认当前是否已指向明确的文件路径,并确保 MySQL 进程有权限写入该位置。
查看当前错误日志配置
登录 MySQL 后执行:
mysql> SHOW VARIABLES LIKE 'log_error';若返回值为 /var/log/mysqld.log 或类似绝对路径,说明已配置;若显示 stderr,则日志正输出到系统日志(常见于 systemd 管理的服务),需进一步调整。
在配置文件中指定错误日志路径
编辑 MySQL 主配置文件(Linux/macOS 通常是 /etc/my.cnf 或 /etc/mysql/my.cnf;Windows 是 my.ini),在 [mysqld] 段落下添加或修改:
log_error = /var/log/mysql/error.log注意三点:
- 目标目录必须存在,例如:
sudo mkdir -p /var/log/mysql - MySQL 进程用户(通常是
mysql)需有写权限:sudo chown mysql:mysql /var/log/mysql - 路径不能是相对路径,必须为绝对路径
重启服务使配置生效
保存配置后,重启 MySQL:
sudo systemctl restart mysqld或根据系统使用:
sudo service mysqld restart重启后再次运行 SHOW VARIABLES LIKE 'log_error';,确认路径已更新且文件开始生成。
手动轮转错误日志(避免单文件过大)
MySQL 不支持自动按大小或时间切割错误日志,但可通过以下方式安全轮转:
- 重命名当前日志:
sudo mv /var/log/mysql/error.log /var/log/mysql/error.log.20251223 - 触发日志重开:
mysqladmin -u root -p flush-logs - 新日志会立即以原名(
error.log)重新创建并写入
建议配合定时任务(如 cron)定期执行,防止日志无限增长。










