MySQL日志-二进制日志(Binlog)
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,MySQL有下面几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志(-log-err)记录启动、运行或停止mysqld时出现的问题。查询日志(-log)
千家信息网最后更新 2025年11月11日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安全错误
数据库的锁怎样保障安全
云服务器ddos攻击
adsb数据库
mysql备份表数据库表
mysql数据库一键安装
网络安全领导小组成立文件
麦芽网络技术有限公司
铜仁文件服务器代理
19年网络技术自考
网络安全宣传活动方案记录表
网络安全外包好不好接
win8带网络安全模式
软件开发企业只有人工开支
小程序如何选择服务器运营商
惠普BL460刀片服务器闪红灯
创建library数据库
小程序软件开发公司排名
进入网络安全模式要多久
软件开发必须要具备哪些能力
中国网络安全学院考研
玉林戴尔服务器
vba 操作mysql数据库吗
拒绝网络安全诈骗的手抄报
怎么看数据库表字段是否唯一
软件开发主要考验哪些能力
未落实网络安全义务违法吗
高中信息技术网络技术知识点
网络安全的作用性
梅州网络安全吗
网络安全什么工资最高
反洗钱名单数据库多久更新一次