MySQL日志-二进制日志(Binlog)
发表于:2024-10-21 作者:千家信息网编辑
千家信息网最后更新 2024年10月21日,MySQL有下面几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:日志文件记入文件中的信息类型错误日志(-log-err)记录启动、运行或停止mysqld时出现的问题。查询日志(-log)
千家信息网最后更新 2024年10月21日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安全错误
数据库的锁怎样保障安全
wdcp 数据库打不开
网络安全培训有哪些内容
智能楼宇的计算机网络技术
青浦区新能源软件开发售后服务
邓州市网络安全隐患
web前置服务器作用
备份整个服务器系统吗
运营商网络技术特点
空中网络安全研究生毕业去向
机算机和网络技术哪个好
信息网络安全管理考核制度
软件开发常用图
数据库中数据监控工作指
r语言处理转录组数据库
南京应用软件开发创新服务
服务器管理部成果发布
was里的数据库端口号
暨南大学网络安全经验贴
2021网络安全创新发展论坛
投屏无法连接服务器什么意思
京东的软件开发岗待遇
web服务器怎么提高安全性
查服务器ip
教育科技互联网经济
电脑软件开发招工
ftp服务器安全权限设置
服务器限制无法上传分辨率
中世伯联网络技术公司
校园网络安全目标责任书
app对同一后台数据库操作