数据库运维
记录DBA学习成长历程

9.MySQL 8.0 的工具日志配置管理

文章目录

1 错误日志(err.log)

—1.1 作用

从启动开始,发生过的error,warning,note信息。

定位数据库问题:启动故障,主从故障,死锁,数据库hang住(会记录堆栈信息)

—1.2 配置

默认开启位置log_error=$DATDDIR/hostname.err,即/data/3306/data/db01.err

注意:

建议在初始化之前配置,否则需要touch个err.log文件;日志和数据分开存储,例如/data/3306/log/mysql-err.log

配置过程:

cat /etc/my.cnf
[mysqld]
log_error=/data/3306/log/mysql-err.log
mkdir -p /data/3306/log/
touch /data/3306/log/mysql-err.log
chown -R mysql.mysql /data/
/etc/init.d/mysqld restart

看主要日志:

[ERROR]:如[ERROR] [MY-000068] [Server] unknown option--指配置文件有问题

日志记录级别log_error_verbosity

mysql> show variables like '%log_error%';
+----------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------+----------------------------------------+
| binlog_error_action | ABORT_SERVER |
| log_error | /data/3306/log/mysql-err.log |
| log_error_services | log_filter_internal; log_sink_internal |
| log_error_suppression_list | |
| log_error_verbosity | 2 |
+----------------------------+----------------------------------------+
5 rows in set (0.00 sec)
mysql> set global log_error_verbosity=3;

3个级别:
1.错误信息error;
2.错误信息error和告警信息waring;
3.错误信息error,告警信息waring和通知信息note

2 二进制日志(binlog)

—2.1 作用

记录了MySQL 修改类操作日志,除了show,select语句。

主要作用:数据恢复、主从、SQL问题排查、审计(工具:binlog2sql,my2sql)

—2.2 配置方法

8.0默认开启binlog默认在datadir/binlog.0000001

注意:

建议在初始化之前配置,日志和数据分开存储

必须设置的参数为server_id和log_bin

配置过程:

vim /etc/my.cnf
[mysqld]
server_id=51
log_bin=/data/3306/log/mysql-bin

重启并查看:

/etc/init.d/mysqld restart
ll /data/3306/log/
-rw-r----- 1 mysql mysql 156 Nov 20 23:26 mysql-bin.000001
-rw-r----- 1 mysql mysql 32 Nov 20 23:26 mysql-bin.index
-rw-r--r-- 1 mysql mysql 12361 Nov 20 23:26 mysql-err.log

3 慢日志(slow_log)

—3.1 作用

记录MySQL工作中运行较慢的语句。用来定位SQL语句性能问题。

—3.2 配置方法

默认不打开,建议在初始化之前配置

配置过程:

vim /etc/my.cnf
[mysqld]
slow_query_log=1
slow_query_log_file=/data/3306/log/slow.log
long_query_time=0.5
log_queries_not_using_indexes=1
log_throttle_queries_not_using_indexes=1000;

在线修改(重启会失效):
set global slow_query_log=1
set global long_query_time=0.5默认0.1-10s
set global log_queries_not_using_indexes=1 记录不走索引语句
set global log_throttle_queries_not_using_indexes=1000; 记录最近1000条不走索引语句

4 普通日志(general_log) 

—4.1 介绍

文本格式,记录MySQL运行期间所有的操作语句,可以做问题诊断和调试

—4.2 配置

默认不打开,生产中一般不开启,建议在初始化之前配置。

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
general_log=on
general_log_file=/data/3306/log/genlog
赞(0)
MySQL学习笔记 » 9.MySQL 8.0 的工具日志配置管理