MySQL 日志文件

数据库管理员 DBA 会更关注数据库日志文件,因为提供很多有用的信息,方便数据库问题定位,从全局角度对数据库进行优化。

MySQL 数据库日志文件记录了影响数据库的各种类型的活动;日志文件包括错误日志,二进制日志,慢查询日志,和查询日志。

 

1、错误日志文件 error log

记录了数据库的启动,运行,和关闭的过程,包括错误信息,警告信息以及正确的信息,存放位置通过如下命令定位:

show variables like 'log_error'

可以使用文本编辑器打开此文件,有些警告[Warning] 信息可以帮助数据库优化。

如果数据库启动失败,首先查看此日志文件进行问题定位。

 

2、 二进制日志 binlog

查看是否开启:
show variables like 'log_bin';
log_bin    OFF
默认未开启,所以以下查询会报错:
show master status;
show binary logs;
如何开启?需要在my.ini配置文件中将 log_bin 注释取消,并添加文件名,例如
log_bin = binlog
然后重启mysql服务即可,在data目录下会出现两个新的文件,
binlog.000001 和 binlog.index
再次查询:
show master status:
binlog.000001    120            
show binary logs:
binlog.000001    120
因为为二进制文件,需要使用mysqlbinlog查看文件内容:
首先写入一条数据:
insert into book values(2,'book2');

使用如下语句查看文件内容:
show binlog events in 'binlog.000001'
binlog.000001    4    Format_desc    1    120    Server ver: 5.6.25-log, Binlog ver: 4
binlog.000001    120    Query    1    213    BEGIN
binlog.000001    213    Query    1    335    use `springcloud`; insert into book values(2,'book2')
binlog.000001    335    Xid    1    366    COMMIT /* xid=43 */

 

3、慢查询日志文件 slow query log

用于定位问题 SQL,方便进行 SQL 优化。数据库默认的数值为10s,参数为 long_query_time。

show variables like 'long_query_time' 

慢查询日志默认未开启:

show variables like '%slow%',显示如下信息:

log_slow_admin_statements    OFF
log_slow_slave_statements    OFF
slow_launch_time    2
slow_query_log    OFF
slow_query_log_file    D:\mysql-5.6.25-winx64\data\DESKTOP-7TFD4O0-slow.log

不使用索引的查询是否记录到慢查询日志中:
-- ON 表示开启
show variables like '%log_queries_not_using_indexes%'
-- 每分钟运行记录到慢查询日志文件中的没有使用索引的SQL 语句,0表示没有限制

-- 如果此参数开启,日志文件会记录越来越多的没有使用索引的 SQL语句,文件会越来越大
show variables like '%log_throttle_queries_not_using_indexes%'

开启慢查询日志:
set global slow_query_log=on;
查询:
show variables like '%slow_query_log%'
结果显示:
slow_query_log    ON
slow_query_log_file    D:\mysql-5.6.25-winx64\data\DESKTOP-7TFD4O0-slow.log
将慢查询日志记录到数据库表:
set global log_output='TABLE';
查询:
show variables like '%log_output%';
log_output    TABLE
创建一个慢查询:
select sleep(12)
从慢查询日志表查询记录信息:
select * from mysql.slow_log;
2021-04-11 10:27:09    root[root] @ localhost [127.0.0.1]    00:00:12    00:00:00    1    0    springcloud    0    0    0    select sleep(12)    478

统计慢查询记录:
show global status like '%Slow_queries%'

 

4、查询日志 log

查询日志记录所有对数据库的请求的信息,默认是未开启的,如果开启,对数据库性能影响蛮大的,使用场景也比较少,在此只是记录下使用方法。

show variables like '%general_log%'
-- 未开启查询日志记录
general_log    OFF
-- 查询日志文件位置
general_log_file    D:\mysql-5.6.25-winx64\data\DESKTOP-7TFD4O0.log
-- 开启MySQL查询日志
set global general_log = on;
支持写入文件或写入数据表两种形式,通过参数log_output控制,默认为file
show variables like 'log_output'
log_output    FILE
备注:
general_log、 general_log_file、 log_output都是动态参数,可以随时动态修改

设置为写入数据库表中
set global log_output='table';
再次查询:
show variables like 'log_output'
log_output    TABLE
查询日志信息:
select * from mysql.general_log
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值