Ubuntu下开启mysql的bin_log日志

:-}

mysqlbinlog工具

mysqlbinlog是一个客户端程序,可以审查binlog文件及中继日志文件的内容。既可以读取本地也可以读取远程的binlog文件,输出二进制日志的内容。

mysqlbinlog常用的选项:

—database=db_name,-d db_name

只列出该数据库的条目(只用本地日志)。

–force-read,-f

使用该选项,如果mysqlbinlog读它不能识别的二进制日志事件,它会打印警告,忽略该事件并继续。没有该选项,如果mysqlbinlog读到此类事件则停止。

–read-from-remote-server,-R

从MySQL服务器读二进制日志。如果未给出该选项,任何连接参数选项将被忽略。这些选项是–host、–password、–port、–protocol、–socket和–user。

–host=host_name,-h host_name

获取给定主机上的MySQL服务器的二进制日志。

–port=port_num,-P port_num

用于连接远程服务器的TCP/IP端口号。

–user=user_name,-u user_name

连接远程服务器时使用的MySQL用户名。

–password[=password],-p[password]

当连接服务器时使用的密码。如果使用短选项形式(-p),选项和密码之间不能有空格。如果在命令行中–password或-p选项后面没有密码值,则提示输入一个密码。

–result-file=name,-r name

将输出指向给定的文件。

–short-form,-s

只显示日志中包含的语句,不显示其它信息。

–start-datetime=datetime

从二进制日志中第1个日期时间等于或晚于datetime参量的事件开始读取。datetime值相对于运行mysqlbinlog的机器上的本地时区。该值格式应符合DATETIME或TIMESTAMP数据类型。例如:

shell> mysqlbinlog–start-datetime=”2004-12-25 11:25:56″binlog.000003该选项可以帮助点对点恢复。

–stop-datetime=datetime

从二进制日志中第1个日期时间等于或晚于datetime参量的事件起停止读。关于datetime值的描述参见–start-datetime选项。该选项可以帮助及时恢复。

–start-position=N

从二进制日志中第1个位置等于N参量时的事件开始读。

–stop-position=N

从二进制日志中第1个位置等于和大于N参量时的事件起停止读。

利用mysqlbinlog 拿到你想要的原生sql

执行:

bin ./mysqlbinlog -v --base64-output=DECODE-ROWS  ~/Downloads/tymysql2|grep  -A4  'ALTER' >~/Downloads/alter2.text

参数:

-v 是显示出一些sql的信息
 -vv则是多一些注释性的东西
--base64-output=DECODE-ROWS 这个是把sql解码出来
~/mysql/data/mysql.bin.000001 这里是你的binlog文件
grep -A4 'ALTER' 这个则是匹配alter语句以及后四行
> ~/Downloads/test.sql  则是把匹配出来的sql语句输出到指定文件

参考:
https://www.cnblogs.com/jackluo/p/3336585.html
https://www.cnblogs.com/martinzhang/p/3454358.html
http://blog.51cto.com/suifu/1881116
https://my.oschina.net/Laily/blog/648776