MySQL日志-二进制日志(Binlog)
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,MySQL有下面几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志(-log-err)记录启动、运行或停止mysqld时出现的问题。查询日志(-log)
千家信息网最后更新 2025年02月03日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安全错误
数据库的锁怎样保障安全
数据库技术服务方案
免费商业用途数据库
幻塔什么时候可以跨服务器一起玩
msq数据库配置
南充网络技术近期价格
阳光保险软件开发工资
网络安全人员必懂的开发语言
数据库ip是啥意思
网络安全 徐
网络可以什么软件开发
pi币服务器每月多少钱
mc国内综合服务器
关于网络安全的通知范文
河北系统软件开发价钱是多少
网络技术在线咨询客服管理系统
昆山运营网络技术哪家便宜
安阳网络安全局
黑龙江ftp服务器托管
王者里的服务器如何更换
网络安全 五防
网络技术管理部门职责
国内服务器cpu排名
宁夏网络安全等保测评费用
数据库和应用迁移实施步骤
历年网络安全事故案例
安卓系统网络安全
计算机网络技术真的好吗
天河软件开发院校技工
网络安全作业119消防
重庆奔浪科技互联网