MySQL日志-二进制日志(Binlog)
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,MySQL有下面几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志(-log-err)记录启动、运行或停止mysqld时出现的问题。查询日志(-log)
千家信息网最后更新 2026年11月02日MySQL日志-二进制日志(Binlog)
在mysql的安装目录下,打开my.cnf,在后面加上上面的参数,保存后重启mysql服务就行了。
例如:
log-error= d:/mysql/log/log-error.log
#log=......
#log-slow-queries=......
#log-update=......
#log-bin=......
上面只开启了错误日志,要开其他的日志就把前面的"#"去掉并设置日志格式及目录。
下面重点介绍一下二进制日志(binlog)
2、查看二进制日志 2.1、查看所有二进制日志列表 mysql> show binary logs; +---------------+-----------+ | Log_name | File_size | +---------------+-----------+ | binlog.000001 | 2036 | | binlog.000002 | 143 | | binlog.000003 | 143 | | binlog.000004 | 143 | | binlog.000005 | 143 | | binlog.000006 | 120 | +---------------+-----------+
2.2、查看正在使用的二进制日志状态信息
mysql> show master status; +---------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +---------------+----------+--------------+------------------+-------------------+ | binlog.000006 | 120 | | | | +---------------+----------+--------------+------------------+-------------------+
3、查看binlog日志的大小 mysql> show variables like 'max_binlog_size'; +-----------------+------------+ | Variable_name | Value | +-----------------+------------+ | max_binlog_size | 1073741824 | +-----------------+------------+
4、删除binlog日志 删除binlog日志有以下几种方式:
4.1、设置expire_logs_days 参数 expire_logs_days 参数表示二进制日志自动删除的天数。默认值为0,表示"没有自动删除"。 mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 0 | +------------------+-------+ 可以使用下列方式修改expire_logs_days参数值。 mysql> set global expire_logs_days=5; Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 5 | +------------------+-------+
4.2、删除全部二进制日志 使用RESET MASTER;命令可以删除全部binlog。 mysql> RESET MASTER;
4.3、使用PURGE MASTER LOGS PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date' 用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。 例如: PURGE MASTER LOGS TO 'binlog.000003'; PURGE MASTER LOGS BEFORE '2016-04-02 22:46:26'; BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同义词。
5、查看二进制文件的内容
查看二进制文件的内容用mysqlbinlog [root@mysql1 log]# mysqlbinlog binlog.000001 |more /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #160426 13:44:42 server id 1 end_log_pos 120 Start: binlog v 4, server v 5.6.30-log created 160426 13:44:42 at startup ROLLBACK/*!*/; BINLOG ' SgAfVw8BAAAAdAAAAHgAAAAAAAQANS42LjMwLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABKAB9XEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAZhk qys= '/*!*/; # at 120 。。。。。。。。。。。。。。。。。。。。。。。。。。。 -----日志里面能看到你对数据库做的更改操作,比如下面是我的日志里面其中一个操作。 use `test2`/*!*/; SET TIMESTAMP=1461649838/*!*/; insert into t values(1,'2016-04-27')# /*!*/; 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
MySQL有下面几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:
日志文件 | 记入文件中的信息类型 |
错误日志(-log-err) | 记录启动、运行或停止mysqld时出现的问题。 |
查询日志(-log) | 记录建立的客户端连接和执行的语句。 |
更新日志(-log-update) | 记录更改数据的语句。不赞成使用该日志。 |
二进制日志(-log-bin) | 记录所有更改数据的语句。还用于复制。 |
慢日志(-log-slow-queries) | 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。 |
在mysql的安装目录下,打开my.cnf,在后面加上上面的参数,保存后重启mysql服务就行了。
例如:
log-error= d:/mysql/log/log-error.log
#log=......
#log-slow-queries=......
#log-update=......
#log-bin=......
上面只开启了错误日志,要开其他的日志就把前面的"#"去掉并设置日志格式及目录。
下面重点介绍一下二进制日志(binlog)
二进制以一种更有效的格式,并且是事务安全的方式包含更新日志中可用的所有信息。
包含关于每个更新数据库的语句的执行时间信息。它不包含没有修改任何数据的语句。
下面介绍一下和二进制日志(binlog)相关的一些操作。
1、是否启用了日志
ON为启用
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+2、查看二进制日志 2.1、查看所有二进制日志列表 mysql> show binary logs; +---------------+-----------+ | Log_name | File_size | +---------------+-----------+ | binlog.000001 | 2036 | | binlog.000002 | 143 | | binlog.000003 | 143 | | binlog.000004 | 143 | | binlog.000005 | 143 | | binlog.000006 | 120 | +---------------+-----------+
2.2、查看正在使用的二进制日志状态信息
mysql> show master status; +---------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +---------------+----------+--------------+------------------+-------------------+ | binlog.000006 | 120 | | | | +---------------+----------+--------------+------------------+-------------------+
3、查看binlog日志的大小 mysql> show variables like 'max_binlog_size'; +-----------------+------------+ | Variable_name | Value | +-----------------+------------+ | max_binlog_size | 1073741824 | +-----------------+------------+
4、删除binlog日志 删除binlog日志有以下几种方式:
4.1、设置expire_logs_days 参数 expire_logs_days 参数表示二进制日志自动删除的天数。默认值为0,表示"没有自动删除"。 mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 0 | +------------------+-------+ 可以使用下列方式修改expire_logs_days参数值。 mysql> set global expire_logs_days=5; Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'expire_logs_days'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 5 | +------------------+-------+
4.2、删除全部二进制日志 使用RESET MASTER;命令可以删除全部binlog。 mysql> RESET MASTER;
4.3、使用PURGE MASTER LOGS PURGE {MASTER | BINARY} LOGS TO 'log_name' PURGE {MASTER | BINARY} LOGS BEFORE 'date' 用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。 例如: PURGE MASTER LOGS TO 'binlog.000003'; PURGE MASTER LOGS BEFORE '2016-04-02 22:46:26'; BEFORE变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。MASTER和BINARY是同义词。
5、查看二进制文件的内容
查看二进制文件的内容用mysqlbinlog [root@mysql1 log]# mysqlbinlog binlog.000001 |more /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #160426 13:44:42 server id 1 end_log_pos 120 Start: binlog v 4, server v 5.6.30-log created 160426 13:44:42 at startup ROLLBACK/*!*/; BINLOG ' SgAfVw8BAAAAdAAAAHgAAAAAAAQANS42LjMwLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAABKAB9XEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAAZhk qys= '/*!*/; # at 120 。。。。。。。。。。。。。。。。。。。。。。。。。。。 -----日志里面能看到你对数据库做的更改操作,比如下面是我的日志里面其中一个操作。 use `test2`/*!*/; SET TIMESTAMP=1461649838/*!*/; insert into t values(1,'2016-04-27')# /*!*/; 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
日志
二进制
文件
数据
语句
信息
参数
方式
格式
索引
更新
查询
内容
数据库
时间
目录
错误
不同
有效
安全
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
A股互联网金融科技公司
互联网科技财经
互联网科技公司税收优惠
北京互联网科技
互联网医疗科技
亿策互联网科技
云电互联网科技
融势互联网科技
人人互联网科技是培训
左右互联网络科技
中盈科技互联网信息有限公司
阿里互联网科技公司
科技互联网大厂
崇明区互联网教育科技售后服务
本届互联网大会上的黑科技
下一代互联网重大应用科技园
云鲸互联网络科技有限公司
悟空问答互联网科技
三亚科技创新互联网基地
恒生科技指数 中概互联网
百单网互联网科技有限公司
互联网科技与金融科技
安徽鑫晟辉互联网科技
凡科互联网科技
互联网科技博客
乌苏新华互联网科技做什么的
济南小医互联网科技有限公司招聘
亚光科技低轨卫星互联网
互联网对科技影响
科技互联网专业务虚会材料