读取log-bin二进制文件的内容
1、mysqlbinlog mysql-bin.000002 > ./out.log #将二进制日志文件输出到指定文件(方便查看)
输出的一条完整记录的如下:
SET TIMESTAMP=1521166132/*!*/;
SET @@session.sql_mode=0/*!*/;
BEGIN
/*!*/;
# at 502
#180316 10:08:52 server id 1 end_log_pos 768 CRC32 0xdc818866 Query thread_id=53 exec_time=0 error_code=0
SET TIMESTAMP=1521166132/*!*/;
update `wuxiang_default_db`.obj_order_product set package_id='S18031500818A', out_stock_id='1', modify_date='2018-03-16 10:08:52' where reference_id_value='163954'
/*!*/;
# at 768
#180316 10:08:52 server id 1 end_log_pos 799 CRC32 0x795a45a5 Xid = 396
COMMIT/*!*/;
# at 799
#180316 10:08:52 server id 1 end_log_pos 906 CRC32 0xb0dcf7c3 Query thread_id=54 exec_time=0 error_code=0
SET TIMESTAMP=1521166132/*!*/; #执行的世界戳(秒)执行的sql如下
update `wuxiang_default_db`.obj_order_product set package_id='S18031500818A', out_stock_id='1', modify_date='2018-03-16 10:08:52' where reference_id_value='163954'
server id 1 #服务器的id
end_log_pos 799 #pos点
thread_id=54 #线程号
exec_time=0 #执行时间
2。show binlog events [in 'log_name' ]
[from pos] [limt 0,10]
show binlog events in 'mysql-bin.000001' FROM 896 limit 1,10
注意pos需要时存在的pos点,不然会有以下的错误
结果如下:
开始主要讲mysqlbinlog
mysqlbinliog主要参数如下:
常用选项: --start-position=1374 起始pos点 --stop-position=1405 结束pos点 --start-datetime="2017-12-29 10:10:30" 起始时间点 --stop-datetime="2017-12-29 11:33:22" 结束时间点
--database=zyyshop 指定数据库
不常用选项:
-u, --user=name Connect to the remote server as username.
-uroot 或者 --user=root
-p, --password[=name] Password to connect to remote server
-proot 或者 --paswrod=root
-h, --host=name Get the binlog from server
和--read-from-remote-server一起用
-h 120.77.255.38 --read-from-remote-server
-R,--read-from-remote-server Read binary logs from a MySQL server--base64-output=name Determine when the output statements(auto,decode-rows,nerver)
--base64-output=decode-rows
个人爱好选项
--short-form,-s 只显示日志中包含的语句,不显示其它信息(如: set @session....)
--result-file=name, -r name 将输出指向给定的文件。
---database=db_name,-d db_name 只列出该数据库的条目(只用本地日志)。
--force-read,-f 使用该选项,如果mysqlbinlog读它不能识别的二进制日志事件,它会打印警告,忽略该事件并继 续。没有该选项,如果mysqlbinlog读到此类事件则停止。
使用例子:
mysqlbin 恢复的语法格式是:
mysqlbinlog mysql-bin.000xxx | mysql -u用户名 -p密码 数据库名
http://blog.csdn.net/nuli888/article/details/52117646 #其他资料链接
http://blog.csdn.net/arkblue/article/details/50912640 #其他资料链接