MySQL远程获取BinLog日志

Published: Tags: MYSQL LINUX

标题中强调了「远程获取」,是因为很多时候我们会遇到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-12110653.htm