MySQL错误日志

注意:如无特定声明,在此阶段的总结都是在 MySQL 5.7 中记录的。

root@localhost 22:52: [(none)]> select @@version;
+------------+
| @@version  |
+------------+
| 5.7.18-log |
+------------+
1 row in set (0.00 sec)

错误日志默认是启用的,一般存放在数据目录下,如无特别指定,默认以 $HOSTNAME.err 为文件名称。错误日志中除了记录错误相关的信息之外,默认还记录 MySQL 初始化、启动和关闭过程中输出的信息(未必是错误信息)、event scheduler 运行时所产生的信息、主从架构中的从 I/O Thread 的信息。

在工作中,善于利用错误日志来定位问题是非常好的一个习惯。

类似于 Oracle 数据库中的 alert log,在 MySQL 5.7 和 8.0 版本中,在初始化数据库时加上 --initialize 参数会生成一个临时的数据库初始化密码,记录在 log_error 中。

设置方法:(默认启用)

# vim /etc/my.cnf

log_error = /usr/local/mysql/data/error.log

 重启 MySQL 后查看变量

root@localhost 23:06: [(none)]> show variables like 'log_error';
+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| log_error     | /usr/local/mysql/data/error.log |
+---------------+---------------------------------+
1 row in set (0.00 sec)

log_warnings 变量的值也与错误日志相关,其用于表示警告信息是否一并记录到错误日志中。

该值为 0,表示不记录警告信息。

该值为 1,表示警告信息一并记录到错误日志中。

该值大于 1,表示“失败的连接”的信息和创建新连接时“拒绝访问”类的错误信息也会被记录到错误日志中。

root@localhost 23:06: [(none)]> show variables like 'log_warnings%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 2     |
+---------------+-------+
1 row in set (0.00 sec)

随着错误日志越滚越大,有时候为了维护方便,需要先将旧的错误日志进行备份(便于日后分析之用),然后生成新的错误日志。可用 mysqladmin 或者是在 MySQL 终端用 flush logs 来生成新的日志,但是要注意,这个操作还会刷新二进制日志。

# cd /usr/local/mysql/data/

# mv error.log{,.back.$(date +"%Y%m%d")}

# mysqladmin -uroot -p flush-logs

# ls error*

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值