错误日志(Error Log)是 MySQL 中最常用的一种日志,主要记录 MySQL 服务器启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况等。
一、查看错误日志
错误日志中记录着开启和关闭 MySQL 服务的时间,以及服务运行过程中出现哪些异常等信息。如果 MySQL 服务出现异常,可以到错误日志中查找原因。
在 MySQL 中,通过 SHOW 命令可以查看错误日志文件所在的目录及文件名信息。
mysql> show global variables like 'log_error%';
+---------------------+---------------------+
| Variable_name | Value |
+---------------------+---------------------+
| log_error | /var/log/mysqld.log |
| log_error_verbosity | 3 |
+---------------------+---------------------+
2 rows in set (0.00 sec)
使用 tail -f /var/log/mysqld.log 查看日志信息。
二、 错误日志参数修改
错误日志所记录的信息是可以通过log-error和log_error_verbosity 来定义的,其中log_error是定义是否启用错误日志的功能和错误日志的存储位置,log_error_verbosity 是定义是否将警告信息也定义至错误日志中。
- log_error文件存储位置修改
1.编辑MySql配置文件
vi /etc/my.cnf
log-error=/var/log/mysqld.log
2.重启MySql服务
service mysqld restart - log_error_verbosity 级别修改
mysql> set global log_error_verbosity=2;
Query OK, 0 rows affected (0.00 sec)
mysql> show global variables like 'log_error%';
+---------------------+----------------------+
| Variable_name | Value |
+---------------------+----------------------+
| log_error | /var/log/mysqld2.log |
| log_error_verbosity | 2 |
+---------------------+----------------------+
2 rows in set (0.00 sec)
- log_warnings
是否将告警信息(warning messages)也写入错误日志;在MySQL 5.6中,log_warnings的默认值为1;在MySQL 5.7中,有些版本默认值为2,有些版本默认值为1, 具体参考官方文档信息;
log_warnings 为0, 表示不记录告警信息。
log_warnings 为1, 表示告警信息写入错误日志。
log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。 - log_error_verbosity
从MySQL 5.7.2开始,首选log_error_verbosity系统变量,而不是使用–log-warnings选项或log_warnings系统变量,这个参数从MySQL 8.0.3开始被移除了。
参数说明: 1: 错误信息;2: 错误信息和告警信息; 3: 错误信息、告警信息和通知信息。