MySQL 日志
# 分类
MySQL 中的日志类型总共有 6 种:
- 通用查询日志:记录连接期间内发送给数据库服务器的所有指令,对数据库操作审计有很大帮助。
- 慢查询日志:记录所有查询时间超过
long_query_time
的 SQL。 - 二进制日志:也称为 Binlog,记录所有更改数据的日志。
- 错误日志:记录 MySQL 服务启动、运行和停止过程中出现的问题。
- 数据定义语句日志:记录数据定义语句执行的元数据操作。
- 中继日志:用于主从服务架构中,从服务器用来存放主服务器二进制日志内容的一个中间文件。
# 通用查询日志
查询日志中记录了客户端的所有操作语句,默认情况下是未开启的。
查看查询日志是否开启:
show variables like 'general_log';
1
查看查询日志存储位置:
show variables like 'general_log_file';
1
修改慢查询日志参数:
- 方式一:更改 my.cnf 配置文件
general_log = 1
general_log_file = /tmp/general_log.log
1
2
2
- 方式二:set 命令
set global general_log = 1;
set global general_log_file = '/tmp/general_log.log';
1
2
3
2
3
# 慢查询日志
慢查询日志记录了所有执行时间超过long_query_time
参数(默认 10 秒)的 SQL 语句日志。可以通过show variables like 'slow_query_log'
查看是否开启了慢查询日志,默认是不开启(OFF)的。
如果要开启慢查询日志,需要在配置文件(my.cnf)中配置如下信息:
# 开启慢查询日志
slow_query_log=1
# 指定超时时间,按需设置,默认为10,单位为秒
long_query_time=10
1
2
3
4
5
2
3
4
5
配置完记得重启 MySQL 服务:
systemctl restart mysqld
1
或者通过 set 命令进行设置:
set global slow_query_log = 1;
set global long_query_time = 10;
1
2
3
2
3
可以通过以下命令查看慢查询日志存储位置:
show variables like 'slow_query_log_file';
1
# 二进制日志
二进制日志(Binary Log),也称Binlog。记录了所有 DDL 和 DML 语句的操作,因为 DDL 和 DML 会引起数据变更。
Binlog 的主要作用:
- 数据恢复
- 主从复制
涉及到的参数可以通过以下命令查看:
show variables like '%log_bin%';
1
上次更新: 2023/11/01, 03:11:44