mysql日志

目录

查看日志位置

二进制日志-binlog

查询日志

慢查询日志


查看日志位置

show variables like 'log_error%';

二进制日志-binlog

#配置开启binlog日志, 日志的文件前缀为 mysqlbin -----> 生成的文件名如 : mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin

#配置二进制日志的格式
binlog_format=STATEMENT

-- 查看MySQL是否开启了binlog日志
show variables like 'log_bin';
 
 
-- 查看binlog日志的格式
show variables like 'binlog_format';
 
-- 查看所有日志
show binlog events;
 
-- 查看最新的日志
show master status;
 
-- 查询指定的binlog日志
show binlog events in 'binlog.000010';
select * from mydb1.emp2;
select count(*) from mydb1.emp2;
update mydb1.emp2 set salary = 8000;

-- 从指定的位置开始,查看指定的Binlog日志
show binlog events in 'binlog.000010' from 156;
 
 
-- 从指定的位置开始,查看指定的Binlog日志,限制查询的条数
show binlog events in 'binlog.000010' from 156 limit 2;
--从指定的位置开始,带有偏移,查看指定的Binlog日志,限制查询的条数
show binlog events in 'binlog.000010' from 666 limit 1, 2;
 
-- 清空所有的 binlog 日志文件
reset master

查询日志

#该选项用来开启查询日志 , 可选值 : 0 或者 1 ; 0 代表关闭, 1 代表开启 
general_log=1

#设置日志的文件名 , 如果没有指定, 默认的文件名为 host_name.log 
general_log_file=file_name

-- 查看MySQL是否开启了查询日志
show variables like 'general_log';
 
-- 开启查询日志
set global  general_log=1;
 
select * from mydb1.emp2;
select * from mydb6_view.emp;
 
select count(*) from mydb1.emp2;
select count(*) from mydb6_view.emp;
update mydb1.emp2 set salary = 9000;

慢查询日志

# 该参数用来控制慢查询日志是否开启, 可取值: 1 和 0 , 1 代表开启, 0 代表关闭
slow_query_log=1

 # 该参数用来指定慢查询日志的文件名
slow_query_log_file=slow_query.log

# 该选项用来配置查询的时间限制, 超过这个时间将认为值慢查询, 将需要进行日志记录, 默认10s

long_query_time=10

### 配置和查看 MySQL 日志文件 #### 一、配置 MySQL 日志输出方式 为了控制日志记录的位置,可以通过设置`log_output`参数来决定是将日志存储于文件还是表格内。当设定为`FILE`时,默认会把日志保存成物理文件形式;而如果指定为`TABLE`,则意味着慢查询等类型的日志会被录入至特定的数据表中,比如`mysql.general_log`或是`mysql.slow_log`[^2]。 ```sql SET GLOBAL log_output = 'TABLE'; -- 或者 SET GLOBAL log_output = 'FILE'; ``` #### 二、启用不同种类的日志功能 对于想要开启诸如错误日志(Error Log),通用查询日志(General Query Log), 慢查询日志(Slow Query Log)等功能来说,在my.cnf(my.ini Windows环境下)这样的全局配置文档里添相应的指令即可实现目的。例如要激活慢查询日志并定义其阈值时间: ```ini slow_query_log=ON long_query_time=2 ``` 上述配置使得超过两秒未完成的操作才会被视作“缓慢”,进而触发记录过程。 #### 三、定位及读取日志数据 一旦完成了必要的前期准备工作之后,就可以着手去访问这些宝贵的诊断资料了。如果是基于文件系统的日志,则可以直接利用Linux自带工具如cat,tail,follow等方式实时监控最新动态变化情况: ```bash tail -f /path/to/mysql/error.log ``` 而对于那些已经转化为关系型结构体存在的历史档案而言,借助SQL语句同样可以轻松获取所需信息片段: ```sql SELECT * FROM mysql.slow_log WHERE start_time >= NOW() - INTERVAL 1 DAY; ``` 此命令能够筛选出过去一天内的所有低效请求实例。 #### 四、管理日志文件大小 考虑到长期积累下来可能会占用过多磁盘空间资源的问题,适时清理不再需要的历史版本就显得尤为重要。针对Binlog这类特殊的复制机制专属产物,可通过如下操作达到瘦身效果——即移除编号低于某个给定数值之前的全部条目集合[^3]: ```sql PURGE BINARY LOGS TO 'mysql-bin.000003'; ``` 另外一种更为激进的做法就是直接重置整个序列号计数器回到起点位置: ```sql RESET MASTER; ``` 这将会使所有的旧有变更记录彻底消失不见,只保留当前时刻作为新的起始点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值