Mysql日志

本文详细介绍了MySQL的日志系统,包括错误日志、通用查询日志(记录所有执行的语句)、慢查询日志(记录执行缓慢的查询)、二进制日志(用于数据恢复与复制)和中继日志(在主从复制中保存主服务器的二进制日志事件)。每种日志的开启、配置及作用都进行了阐述,帮助读者理解如何管理和优化MySQL日志。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 错误日志

2 通用查寻日志 general query log
记录建立的客户端连接和执行的语句,记录数据库执行的命令,不管这些语句是否正确都会被记录
由于数据库操作命令有可能非常多而且执行比较频繁,所以开启了查询日志,数据库可能需要频繁的写入日志,增大服务器IO压力,增加系统开销,所以默认情况下是关闭的,但是开启查寻日志有助于我们分析哪些语句执行密集,执行密集的select语句数据是否可以被缓存,所以我们要根据实际情况决定是否开启

3 慢查寻日志

4 二进制日志

5 中继日志
从主服务器的二进制日志文件中复制而来的事件,并保存为的日志文件

6 事务日志
事务性存储引擎用于保证原子性、一致性、隔离性和持久性

开启或关闭
1 错误日志
log-error = /application/mysql/data/
查看记录错误级别
mysql> show variables like “%log_warning%”;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| log_warnings | 1 |
默认值为1表示记录,为0表示禁用。如果大于1,则对于连接失败、新连接拒绝等类型的消息也会被写入到错误日志中去。
mysql> set global log_warnings=0;

2 通用查寻日志
查看当前状态
mysql> show variables like ‘%general%’;
±-----------------±-----------------------------------------+
| Variable_name | Value |
±-----------------±-----------------------------------------+
| general_log | OFF |
| general_log_file | /application/mysql-5.6.15/data/web01.log |
查看保存类型
mysql> show variables like ‘%log_output%’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| log_output | FILE |

临时开启或关闭
开启通用日志查询: set global general_log=on;
关闭通用日志查询: set global general_log=off;
设置通用日志输出为表方式: set global log_output=’TABLE’;
设置通用日志输出为文件方式: set global log_output=’FILE’;
设置通用日志输出为表和文件方式:set global log_output=’FILE,TABLE’;
永久生效
编辑配置文件
general_log=1
log_output=FILE,TABLE

3 慢查询日志
永久生效
修改配置文件
slow_query_log = ON 是否开启慢查询日志
slow_query_log_file = /data/slow.log 存储路径 可以不设置,默认为数据文件目录,hostname-slow.log
long_query_time = 1 慢查寻阀值单位秒,超过阀值记录日志
log_queries_not_using_indexes = ON 不走索引的语句是否记录

临时生效
查看当前状态
mysql> show variables like ‘%slow_query_log%’;
±--------------------±----------------------------------------+
| Variable_name | Value |
±--------------------±----------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /data/slow.log |

mysql> set global slow_query_log=0;

4 二进制日志
开启二进制日志
编辑配置文件
log-bin = /application/mysql/data/mysql-bin
expire_logs_days = 7 设置日志保留天数
查看当前状态
mysql> show variables like ‘%log_bin%’;
±--------------------------------±----------------------------------------+
| Variable_name | Value |
±--------------------------------±----------------------------------------+
| log_bin | ON |
| log_bin_basename | /application/mysql/data/mysql-bin |
| log_bin_index | /application/mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON

临时修改
mysql> set global log_bin=0;
ERROR 1238 (HY000): Variable ‘log_bin’ is a read only variable
参数为只读参数,需要在配置文件中更改该参数,之后重启数据库

5 中继日志
修改配置文件
relay_log=file_name 设定中继日志的文件名称,默认为host_name-relay-bin。也可以使用绝对路径,以指定非数据目录来存储中继日志
relay_log_index=file_name 设定中继日志的索引文件名,默认为为数据目录中的host_name-relay-bin.index
relay-log-info-file=file_name 设定中继服务用于记录中继信息的文件,默认为数据目录中的relay-log.info
log_slave_updates 设定复制场景中的从服务器是否将从主服务器收到的更新操作记录进本机的二进制日志中。本参数设定的生效需要在从服务器上启用二进制日志功能 1 开启 0 关闭

6 事务日志
事务日志文件名为"ib_logfile0"和“ib_logfile1”,默认存放在表空间所在目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值