MySQL 错误日志默认开启且不可禁用,主要用于记录服务启动、运行和关闭过程中的关键信息(含错误、警告、初始化细节等),是排查故障的第一手资料。最直接有效的方式是先查路径,再读内容。
通过 MySQL 命令行查错误日志路径
登录 MySQL(如
mysql -u root -p),执行:
mysql> SHOW VARIABLES LIKE 'log_error';
返回结果中
Value字段即为当前错误日志的绝对路径,例如:
/var/log/mysqld.log或
/usr/local/mysql/data/localhost.err或
/var/log/mysql/error.log
注意:
- 文件名通常为
主机名.err(如
myserver.err)或固定名如
error.log、
mysqld.log
- 若返回为空值,说明未显式配置,需检查配置文件或系统默认行为
从 MySQL 配置文件确认路径
错误日志路径通常在
my.cnf或
my.ini的
[mysqld]段中定义,查找这一行:
log-error = /path/to/error.log
常见配置位置:
- Linux:/etc/my.cnf、/etc/mysql/my.cnf、/usr/etc/my.cnf
- Windows:MySQL 安装目录下的
my.ini(如
C:\Program Files\MySQL\MySQL Server 8.0\my.ini)
- Docker 容器中:需检查启动时挂载的配置或容器内
/etc/my.cnf
常见默认日志位置(按系统区分)
若命令和配置都未明确指定,可按以下路径尝试查找:
Linux(主流发行版):/var/log/mysqld.log(CentOS/RHEL)
/var/log/mysql/error.log(Debian/Ubuntu)
/usr/local/mysql/data/hostname.err(源码编译安装) Windows:
C:\ProgramData\MySQL\MySQL Server X.X\Data\hostname.err(隐藏目录,需显示系统文件)
或 MySQL 安装目录下的
data\子目录中,文件名形如
DESKTOP-ABC.err
查看与管理日志内容
确认路径后,用系统工具直接读取:
Linux 示例:
sudo tail -n 50 /var/log/mysqld.log(查看最近50行)
sudo less /var/log/mysql/error.log(分页浏览)
sudo grep -i "error\|warning" /var/log/mysqld.log | tail -20(筛选关键信息)
注意事项:
- 操作需有文件读取权限,一般需
sudo或以
mysql用户身份执行
- 日志过大时建议启用
logrotate或 MySQL 自带轮转机制,避免占满磁盘
- 修改日志路径后必须重启 MySQL 生效,且确保新路径目录存在、属主为
mysql用户、权限可写
