MySQL远程获取BinLog日志

LINUXMYSQL2015-06-16 11:46

标题中强调了「远程获取」,是因为很多时候我们会遇到MySQL的数据并不是存放在本地,而是跨了机器,无法取到日志文件。

当然了,前提需要先确认远程的机器已经打开了BinLog的记录,先连上去看看:
mysql -uroot -p123456 -h192.168.1.100 -P3306

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

如果提示开关为OFF,那可以把这个文章关掉了,因为没有开启BinLog已经回天乏力,如果是ON请继续,使用下方命令得到文件名:

/* 等于show master logs;命令 */
mysql> show binary logs; 
+-----------------+-----------+
| Log_name        | File_size |
+-----------------+-----------+
| mysql-bin.000098|      1000 |
| mysql-bin.000099|       999 |
+-----------------+-----------+

如果要远程提取的日志是mysql-bin.000099,则使用以下命令即可:
mysqlbinlog -uroot -p123456 -h192.168.1.100 -P3306 --read-from-remote-server mysql-bin.000099 > binlog-99.sql
提取BinLog的日志时,可以支持指定某个数据库,但是不支持指定到表:
mysqlbinlog -uroot -p123456 -h192.168.1.100 -P3306 --read-from-remote-server --datebase=jtwo --short-form mysql-bin.000099 > binlog-99.sql
如果需要限制一下获取的日志时间段,可以加上开始和结束时间的参数:
mysqlbinlog -uroot -p123456 -h192.168.1.100 -P3306 -R --start-datetime="2015-06-16 00:00:00" --stop-datetime="2015-06-16 12:00:00" BINLOG_NAME > BINLOG.sql

参考:
http://ifxoxo.com/mysql_binlog.html
http://www.linuxidc.com/Linux/2014-12/110653.htm


原文链接: http://blog.jtwo.me/get-binlog-from-remote-mysql