-
2021-03-07 08:39:18
1。启用二进制日志
更改my.ini
找到[mysqld]部分,输入以下命令
#启用二进制日志
server-id = 1
log-bin = e:/mysqlbin/binlog.log
log-bin-index = e:/mysqlbin/binlog.index
重启mysql
mysql> show variables like "log_%";
+---------------------------------+----------------+
| Variable_name | Value |
+---------------------------------+----------------+
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_error | .\ts17-113.err |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
+---------------------------------+----------------+
可以看到log_bin已经启用
e:/mysqlbin/下出现两个文件
binlog.000001
binlog.index
2。查看二进日志文件
show binary logs;
show master logs;
3.导出日志文件
mysqlbinlog -uroot -p E:\mysqlbin\binlog.000001 >d:\test.sql
参考文章
window 下 mysql 启动 二进制日志文件
http://blog.csdn.net/uvyoaa/article/details/6550685
MySQL启用二进制日志实战演示
http://database.51cto.com/art/201006/204642.htm
【mysql性能log分析工具】
http://hi.baidu.com/xhl_tips/blog/item/95de63dff2e68014495403b1.html
更多相关内容 -
MySQL启用二进制日志
2021-01-07 12:26:421、创建存储mysql二进制日志目录 mysql> system mkdir -p /app/mysql/log/binary_log mysql> system chown -R mysql:mysql /app/mysql/log/binary_log 2、添加/etc/my.cnf 启动binary log 相关参数 log-bin=/app/... -
MySQL启用二进制日志实战演示
2021-02-08 08:40:56此文章主要向大家描述的是MySQL启用二进制日志(binlog)的实际操作步骤以及对其在实际操作中的SQL 语句的介绍,下面就是文章的主要内容描述,望在你浏览之后会对其相关的实际操作有更好的了解。采用 binlog 的方法...此文章主要向大家描述的是MySQL启用二进制日志(binlog)的实际操作步骤以及对其在实际操作中的SQL 语句的介绍,下面就是文章的主要内容描述,望在你浏览之后会对其相关的实际操作有更好的了解。
采用 binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。
启用 binlog 时必须要重启 mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:
server-id=1
log-bin=binlog
log-bin-index=binlog.index
然后启动 mysqld 就可以了。运行过程中会产生 binlog.000001 以及 binlog.index,前面的文件是 mysqld 记录所有对数据的更新操作,后面的文件则是所有 binlog 的索引,都不能轻易删除。关于 binlog 的信息请查看手册。
需要备份时,可以先执行一下 SQL 语句,让 mysqld 终止对当前 binlog 的写入,就可以把文件直接备份,这样的话就能达到增量备份的目的了:
FLUSH LOGS;
如果是备份复制系统中的从服务器,还应该备份 master.info 和 relay-log.info 文件。
备份出来的 binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 来查看,如:
/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001
该工具允许你显示指定的数据库下的所有 SQL 语句,并且还可以限定时间范围,相当的方便,详细的请查看手册。
恢复时,可以采用类似以下语句来做到:
/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name
把 mysqlbinlog 输出的 SQL 语句直接作为输入来执行它。
如果你有空闲的机器,不妨采用这种方式来备份。由于作为 slave 的机器性能要求相对不是那么高,因此成本低,用低成本就能实现增量备份而且还能分担一部分数据查询压力,何乐而不为呢?
以上的相关内容就是对MySQL启用二进制日志的介绍,望你能有所收获。
原文标题:启用二进制日志(binlog)
连接:http://www.cnblogs.com/kfarvid/archive/2009/11/12/1601587.html
【编辑推荐】
【责任编辑:孙巧华 TEL:(010)68476606】
点赞 0
-
MySQL二进制日志(binlog)开启、查看、截取
2020-12-14 13:32:07mysql二进制日志记录了数据库所有变更类的操作日志主要有2个作用: MySQL主从配置 数据恢复 参数介绍 server_id=3 log_bin=/data/binlog/mysql-bin: /data/binlog:提前定制好的目录,而且要有mysql.mysql的权限 ... -
Mysql 二进制日志
2022-03-24 15:28:51MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长...MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。
一、二进制日志的参数配置
① 开启二进制日志
show variables like 'log_bin';
② 配置二进制日志的文件名称
在my.cnf配置以后,重启在数据库的数据目录就会有bin文件了
③ 二进制日志的格式
A) binlog_format 在mysql5.7默认是row, 不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨
例如:update a < 10 的数据,statement模式会记录这一条sql,而row模式的话,会记录a=1,a=2到a=9所有的记录的更改
B) STATEMENT模式 每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题
C) MIXED模式 以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
二、二进制的查看
① show master status; 查看当前二进制日志文件
② flush binary logs; 刷新二进制文件
执行一次,二进制文件生成一个新的
③ 查看二进制日志
show binlog events in 'bin.000003'
二进制文件都是由event(事件)组成的。
pos和end_log_pos表示起始位置和结束位置的偏移量,end_log_pos - pos表示每个event的字节数
④ 通过mysqlbinlog查看
mysqlbinlog --base64-output=decode-rows -vv bin.000003
如果想看到我们写入的sql语句格式,则需要设置 binlog_rows_query_log_events = 1
--start-position 可以通过偏移量进行查询
--start-datetime 通过开始时间来查询
--stop-datetime 通过结束时间查询
mysqlbinlog bin.000006 -vv --base64-output=decode-rows --start-datetime='2022-03-25 16:18:22'|less
⑤ 恢复数据
A ) 找到pos 和 End_log_pos 的位置
上面需要记住 Pos 329下面的删除rows的pos 377和497
B) 通过mysqlbinlog 找到删除的数据
这里要记住的是--stop-position的位置是不包含的,例如--stop-position=377,是不包含pos=377的所以这里要用497
mysqlbinlog bin.000010 -vv --base64-output=decode-rows --start-position=219 --stop-position=497
如果数据少的话 可以直接看@1 @2每列的数据进行恢复
C) 安装 binlog2sql 找回back sql
直接在git下载 https://github.com/danfengcao/binlog2sql
shell> git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql shell> pip install -r requirements.txt
安装好之后,运行下面的
python binlog2sql.py --flashback -h127.0.0.1 -P3306 -uroot -p'123456' -d test -t l2 --start-file=bin.000010 --start-pos=219 --end-pos=497 > back.sql
-d 数据库
-t 表名
--start-file 二进制文件
--start-pos: 上面的二进制日志的开始偏移量
--end-pos: 上面的二进制日志的结束偏移量
生成的文件,就是back sql
上面就是我删除的逆向sql,运行sql就行了。
-
mysql binlog二进制日志详解
2021-01-21 14:42:00不良影响: 运行服务器时若启用二进制日志则性能大约慢1%。 如何启动: 通过 –log-bin=file选项可以启用 (更改my.ini文件) 日志位置 >>如果没有指定文件名,则Mysql使用hostname-bin文件. >>如果指定了相对路径,则... -
Mysql查看和启用二进制日志.pdf
2020-03-01 13:34:06查看和启用二进制日志 1.查看是否启用了日志 mysql>show variables like 'log_bin'; Empty set (0.00 sec) 查看当前的日志 -
开启MySQL二进制日志
2021-09-03 14:23:40开启MySQL二进制日志 1 查看MySQL的二进制日志是否开启 show variables like ‘%log_bin%’; 2 在配置文件的[mysqld]中添加如下配置 , log-bin = /server/mysql_data/mysql-bin 3 重启数据库后配置即可生效 /etc/...开启MySQL二进制日志
1 查看MySQL的二进制日志是否开启
show variables like ‘%log_bin%’;
2 在配置文件的[mysqld]中添加如下配置 ,
log-bin = /server/mysql_data/mysql-bin3 重启数据库后配置即可生效
/etc/init.d/mysqld restart4 再次查看 数据库已经开启二进制日志
mysqlbinlog日志开启
1.登陆mysql数据库,然后使用下面命令检查是否开启binlog
show variables like ‘%log_bin%’;
2.查看mysql的配置文件/etc/my.cnf并没有关于binlog的配置(注意windows系统下mysql的配置文件名为my.ini)
在/etc/my.cnf中的[mysqld]下面增加以下内容
log-bin=/usr/local/mysql/logs/mysql_bin #设置日志路径,注意路经需要mysql用户有权限写
binlog-format=Row #设置日志格式
server-id=1 #5.7及以上版本的话,不加server-id重启mysql服务会报错,5.7以下版本就不用加了。 随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了。
3.重启mysql服务
4.mysql用root登录之后使用命令
show variables like ‘%log_bin%’;进行查看
binlog已经开启成功了
四、mysqlbinlog日志清除
1.执行“reset master;”命令,该命令将删除所有二进制日志,新日志的编号从“000001” 开始,命令如下:
Mysql>reset master;2.执行“Purge master logs to ‘mysql-bin.*’” 命令,该命令将删除 “*****” 编号之前的所有日志,下列中删除了“mysql-bin.000015”之前编号的所有日志:
Mysql>purge master logs to ‘mysql-bin.000015’;3.执行“purge master logs before ‘yyyy-mm-dd hh24:min:ss’”命令,该命令将删除日期为“yyyy-mm-dd hh24:mi:ss”之前产生的所有日志,下列中删除了日期在“2010-05-22 01:00:00”之前的所有日志:
Mysql>purge master logs before ‘2010-05-22 01:00:00’;4.设置参数—expire_logs_days=#(days),此参数的含义是设置日志的过期天数,过来指定的天数后日志将会被自动删除:
#vi /etc/my.cnf
[mysqld]
–expire_logs_days=3 #3天前的日志都会被删除,系统自动删除 -
MySQL文件(二)-日志文件(二进制日志binlog、慢查询日志等)
2021-08-08 15:26:53日志文件日志文件类型错误日志二进制日志max_binlog_sizebinlog_cache_sizesync_binlogbinlog-do-db、binlog-ignore-dblog-slave-updatebinlog_format(重要)慢查询日志long_query_timelog_queries_not_using_... -
MySQL 配置二进制日志文件
2021-02-01 17:46:34问题描述:MySQL中二进制日志功能默认是关闭的,查看各种开启方式后,确定在配置文件中加入如下配置来开启该功能:[mysqld]log-bin=mysql之后使用 “systemctl start mysql” 重启服务器,报错“Job for mysql.... -
无法启用二进制日志记录Mysql
2021-01-19 10:27:46应该通过MySQL中的my.cnf文件启用二进制日志记录 .在Ubuntu 1604中,它位于/ etc / mysql /文件夹中 .这里用于启用二进制日志,它实际上被分成不同的文件,可以在/etc/mysql/mysql.conf.d/mysqld.cnf文件中更改... -
mysql 开启慢查询、二进制日志
2021-01-19 07:31:15MYSQL慢查询日志默认是关闭的。需要通过在 /etc/my.cnf 配置中添加如下参数:#开启慢查询日志slow_query_log=ON#慢查询的阈值,默认为10秒,最小为0,精度可以到微妙long_query_time=3#日志记录文件如果没有给出... -
Mysql5.7如何设置二进制日志文件启动
2021-08-30 16:41:42Mysql5.7如何设置二进制日志文件启动 在/etc/my.cnf文件的末尾添加 log_bin=mysql server-id=101 #必须是集群中的唯一id -
mysql 二进制日志
2021-02-01 20:56:24如果需要启用该选项,需要开启通用日志功能主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新用于在主复制服务器上记录所有将发送给从服务器的语句启用该选项数据库性能降低1%... -
MySQL5.7二进制日志
2021-01-19 15:27:44概要二进制日志是MySQL服务器用来记录数据修改事件的,比如INSERT、UPDATE、DELETE等会导致数据发生变化的语句,SELECT语句不会被记录在内。MySQL必须先执行完一条语句才能知道它是否修改了数据,因此写入二进制日志... -
查看MySQL二进制日志的方法
2021-01-18 19:51:04MySQL二进制日志是经常会用到的,那么MySQL二进制日志应该如何查看呢?下面就教您如何查看MySQL二进制日志,供您参考。MySQL二进制日志:从概述中我可以看到my.ini配置信息的log-bin没有指定文件扩展名,这是因为... -
MySQL 开启二进制日志相关操作
2021-01-25 12:16:04MySQL 开启二进制日志相关操作 1、开启bin-log二进制日志 my.ini 配置文件 查到或添加: log-bin=mysql-bin my.cnf配置文件添加: ...a、查看是否启用了二进制日志 mysql> show variables like 'log_bin'; +-------- -
mysql二进制日志的开启和使用
2020-06-05 16:51:23mysql二进制日志的开启和使用 二进制日志(BINLOG)记录了所有的ddl和dml语句,但不包括数据查询语句。语句以“事件”的形式保存,描述数据更改过程。 环境:win8 mysql5.6.23 1.mysql开启二进制日志 默认情况下不... -
Mysql数据库二进制日志
2021-03-03 20:40:17mysql有4种不同的日志,分别是二进制日志,查询日志,慢查询日志和错误日志,这些日记记录着数据库工作的方方面面,可以帮助我们了解数据库的不同方面的踪迹,下面先介绍二进制日志的作用和使用方法,并利用二进制... -
MySQL二进制日志备份和恢复详解
2021-02-08 01:48:16原文链接:http://www.showerlee.com/archives/681****经实践,...二进制日志的主要目的是在恢复使能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。2.二进制日志还用于在主复制服务器上记录所有... -
深入理解MySQL——二进制日志 3 种不同的格式
2021-08-12 11:00:39MySQL 5.5 中对于二进制日志 (binlog) 有 3 种不同的格式可选:Mixed,Statement,Row,默认格式是 Statement。总结一下这三种格式日志的优缺点。 MySQL Replication 复制可以是基于一条语句 (Statement Level) ,也... -
启用二进制日志
2021-03-08 21:53:56启用二进制日志 1. 打开配置文件 sudo vi /etc/my.cnf 2. 编辑配置文件 log_bin = /data/mysql/binlogs/server1 (日志生成位置) server_id = 100 (主从时要唯一,设置要注意) 3. 重启MySQL服务 sudo systemctl ... -
MySQL 数据库服务的二进制日志管理说明和二进制日志的配置参数介绍 | IT工程师的生活足迹
2021-01-19 08:57:22一、二进制日志介绍1.1、二进制日志记录的内容1、二进制日志记录事件的格式2、事件发生的日期和时间3、服务器标识4、结束的位置 end_log_pos5、事件类型6、执行时的线程ID7、语句的时间戳与写入二进制文件中的... -
Linux数据库:MYSQL启用和查看二进制日志
2016-05-24 11:56:30MYSQL启用和查看二进制日志 查看是否启用了日志 mysql>show variables like 'log_bin'; 查看当前的日志 mysql> show master status; 看二进制日志文件用mysqlbinlog shell>mysqlbinlog mail-bin.000001 ... -
mysql开启二进制日志
2019-06-14 12:56:00进入mysql配置文件目录 执行 cd /etc/mysql 首先找到my.cnf这个配置文件,然后使用vim进入文件编辑 放开我标记的地方。 注意我标记的地方,其实这个就是在引用 etc/mysql/mysql.conf这个配置文件。之前我就没注意...