mysql日志
1.四种日志(错误日志,二进制日志,查询日志,慢查询日志)
-
错误日志
记录mysql启动和停止时,以及在运行过程中发生任何严重错误时的相关信息。
show variables like 'log_error%'; 找到错误日志文件路径
-
二进制日志(默认没有开启)
二进制日志(binlog)记录了所有的DDL(数据定义语言)语句和DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着及其重要的作用,mysql的主从复制,也是通过binlog和relaylog实现的。
配置文件位置:/usr/my.cnf
日志文件存放位置:配置时,给定了文件名但是没有指定路径,日志默认写入mysql的数据目录。
#配置开启binlog日志,日志文件前缀为mysqlbin --->如:mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin
#配置二进制日志格式
binlo_format=statement删除日志文件
方法1:
reset master
方法2:删除mysqlbin.000003之前的所有日志文件 mysqlbin.000001 mysqlbin.000002
purge master logs to 'mysqlbin.000003'
方法3:删除yyyy-mm-dd hh24:mi:ss之前产生的所有日志
purge master logs before 'yyyy-mm-dd hh24:mi:ss'
方法4:设置日志过期天数 3天后过期
--expire_logs_days=3 -
查询日志
记录了所有操作语句(默认不开启)
#设置开启查询日志 0关闭 1开启
general_log=1
#设置日志文件名,默认host_name.log
general_log_file=file_name -
慢查询日志(记录查询效率低的日志)
记录查询时间超过参数long_query_time,并且扫描记录数不小于min_examined_row_limit的SQL语句。
long_query_time默认10秒
#默认时关闭的 0关闭 1开启
slow_query_log=1
#该参数用来指定慢查询日志的文件名
slow_query_log_file=slow_query.log
#配置查询的时间限制,超过这个时间将被认为是慢查询
long_query_time=10 -
补充:binlog 日志
二进制日志,无关存储引擎,主要用来主从复制,数据恢复。
三种格式:
statement 记录DML sql
优点:日志量小,减少了IO,提高了性能。
缺点:部分sql会造成主从数据不一致。
mysql5.7.7后默认格式改成row
row 记录的是数据修改情况
优点:不会出现数据问题
缺点:日志量大,特别是alter table 的时候。
mixed 混合模式,一般的复制使用statement模式保存binlog,statement模式无法复制的操作使用row模式保存binlog。sync_binlog参数控制刷盘时机:
0:不去强制要求,由系统自行判断何时写入磁盘;
1:每次commit的时候都要将binlog写入磁盘;
N:每N个事务,才会将binlog写入磁盘。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)