0


MySQL日志

MySQL日志

文章目录

在任何一种数据库中,都会有各种各样的日志,记录着数据库工作的方方面面,以帮助数据库管理员追踪数据库曾经发生过的事件,MySQL也不例外

日志的分类

错误日志、二进制日志(binlog)、查询日志、慢查询日志

错误日志
错误日志是MySQL中最重要的日志之一,他记录了MySQL启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,可以首先查看此日志.
该日志默认是开启的,默认存放目录为MySQL的数据目录,默认的日志文件名为hostname.err(hostname是主机名)
查看日志位置命令: show variables like '%log_error%';
查看mysql是否开启了binlog日志: show variables like '%log_bin%';
查看binlog日志的格式:show variables like '%binlog_format%';
二进制日志(binlog)
二进制日志记录了所有的DDL(数据库定义语言)语句和DML(数据操作语言)语句,但是不包括数据查询语句,此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制,就是通过该binlog实现的.
二进制日志,MySQL8.0默认已经开启,低版本的MySQL的需要通过配置文件开启,并配置MySQl日志的格式,windows系统:my.ini,linux系统:my.cnf

-- 配置开启binlog日志,日志的文件前缀为mysqlbin --->生成的文件名如:mysqlbin.000001,mysqlbin.000002
    log_bin = mysqlbin
-- 配置二进制日志的格式
    binlog_format = STATEMENT

日志格式
statement:该日志格式在日志文件中记录的都是sql语句,每一条对数据进行修改的sql都会记录在日志文件中,通过mysql提供的mysqlbinlog工具,可以清晰的查看到每条语句的文本,主从复制的时候,从库(slave)会将日志解析为原文本,并在从库重新执行一次.
row:该日志格式在日志文件中记录的是每一行的数据变更,而不是记录sql语句,如如:执行sql语句:update tb_name set status=1,如果是statement日志格式,在日志中会记录一行sql文件,如果是row,由于是对全表进行更新,也就是每一行记录都会发生变更,row格式的日志中会记录每一行的数据变更.
mixed:混合了statement和row两种格式.
查询日志
查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的sql语句
默认情况下,查询日志是未开启的,如果需要开启查询日志,可以设置一下配置
-- 该选项用来开启查询日志,可选值:0或1;0代表关闭 1代表开启
set general_log=1-- 设置日志的文件名,如果没有指定,默认的文件名为host_name.log
general_log_file=file_name
慢查询日志
慢查询日志记录了所有执行时间超过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有的sql语句的日志,long_query_time默认为10秒,最小为0,精度可以调到微秒
-- 该参数是用来控制慢查询日志是否开启 可取值0和1,1代表开启 0代表关闭
slow_query_log=1-- 该参数用来指定慢查询日志的文件名
slow_query_log_file=slow_query.log
-- 该选项用来配置查询的时间限制,超过这个时间将认为慢查询,将需要进行日志记录,默认10s
long_query_time=10-- 查看慢日志是否开启
show variables like '%slow_query_log%'
-- 查看慢查询的超时时间
show variables like '%long_query_time%'

真诚地邀请您加入我们的大家庭,在这里不仅有技术知识分享,还有博主们之间的互帮互助.还不定期发红包,每月更有抽奖环节,游戏机和实体书相赠(包邮),让我们抱团取暖,抱团内卷.打造美好C站.期待您的加入.


本文转载自: https://blog.csdn.net/qq_44590469/article/details/125095396
版权归原作者 TimeFriends 所有, 如有侵权,请联系我们删除。

“MySQL日志”的评论:

还没有评论