IE盒子

搜索
查看: 114|回复: 1

MySQL-运维-日志

[复制链接]

3

主题

8

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-1-12 14:42:10 | 显示全部楼层 |阅读模式
错误日志

错误日志记录了mysql启动停止时,服务器运行期间发生严重错误的错误信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。
该日志默认是开启的,默认存放目录/var/log,默认的日志文件名为mysqld.sql。
查看日志位置命令:
show variables like '%log_error%';二进制日志

二进制日志记录了所有的ddl和dml语句,但不包括数据查询(select show)语句
作用:
1、灾难时的数据恢复;
2、MySQL的主从复制;
show variables like '%log_bin%';
注:MySQL8版本中,二进制日志默认是开启的
二进制日志格式
日志格式含义
statement基于sql语句的日志记录,记录的是SQL语句,对数据进行修改的sql都会记录在日志文件中
row基于行的日志记录,记录的是每一行的数据变更。(默认)
mixed混合了statement和row两种格式,默认采用statement,在某些特殊的情况下会自动切换成row模式进行记录
show variables like '%binlog_format%';修改二进制日志格式需要在.etc/my.cnf配置文件中进行设置
binlog_format=statement
设置好格式后需要重新启动mysql
systemctl restart mysqld

mysqlbinlog
服务器生成的二进制日志文件是二进制格式,想要查阅这些文件,就要使用mysqlbinlog日志管理工具
语法:
mysqlbinlog 【options】log-files1 log-files2 ...

选项:
-d,--database=name              #指定数据库名称,只列出指定的数据库相关操作
-o,--offset=#                   #忽略掉日志中的前N行
-r,--result-file=name           #将输出的文本格式日志输出到指定文件
-s,--short-form                 #显示简单格式,省略掉一些信息;
-v,                             #将行事件(数据变更)重构为sql语句
    输出的文件信息中,where后边是更新前的数据,set后边是更新之后的数据
-w,                             #将行事件(数据变更)重构为sql语句,并输出注释信息
--start-datatime=date1  --stop-datetime=date2   #指定日期间隔内的所有日志
--start-position=pos1  --stop-position=date2    #指定位置间隔内的所有日志
设置binlog日志 >>>>> mysql 开启binlog日志

日志删除
指令含义
reset master删除全部binlog日志,删除之后,日志编号从binlog.000001重新开始
purge master logs to 'binlong.******'删除******编号之前的所有日志,不包含****对应的日志
purge master logs before ‘yyyy-mm-dd hh24:mi:ss'删除日志为‘yyyy-mm-dd hh24:mi:ss'之前产生的所有日志
可以在mysql配置文件中配置二进制日志文件的过期时间(单位是秒),过期会自动删除。
show variables like '%binlog_expire_logs_seconds%';
查询日志

查询日志记录了客户端的所有操作语句,默认情况下,查询日志是未开启的
show variables like '%general_log%';配置查询日志需要在 etc/my.cnf文件中进行配置
general_log=1/on  (1表示开启)
general_log_file=文件路径/文件名 (不指定的话,使用系统默认的)
查询日志记录的数据量很大,所以要评估是否要开启
慢查询日志

慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录书不小于 min_examined_row_limit的所有sql语句的日志。默认未开启。
long_query_time默认是10秒,最小为0,精度可以到微妙。
#配置慢查询日志开关
slow_query_log = 1#慢查询设置超时时间
long_query_time = 2慢查询日志默认不记录管理语句,也不会记录不适用索引进行查询的语句。可以使用log_slow_admin_statement和更改此行为log_queries_not_using_indexes,
#记录执行较慢的管理语句
log_slow_admin_statement = 1
#记录执行较慢的未使用索引的语句
log_queries_not_using_indexes = 1
回复

使用道具 举报

2

主题

7

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2025-6-1 23:58:40 | 显示全部楼层
打酱油的人拉,回复下赚取积分
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表