当前位置: 代码迷 >> 综合 >> Mysqlbinlog 命令应用举例
  详细解决方案

Mysqlbinlog 命令应用举例

热度:95   发布时间:2023-12-06 14:47:53.0

详细参数请查看 mysqlbinlog --help ,利用该命令可以通过日志文件把数据恢复到别的mysql 服务器上。

 

1.登录mysql,使用下面的命令可以列出里面binlog 的sql语句的位置:
mysql --user=root -pmy_pwd -e 'SHOW BINLOG EVENTS G'

mysql> show binlog events;

根据pos 范围来提取相关的sql 语句,并保存到文件当中:

mysqlbinlog --start-position=98 --stop-position=117 /var/lib/mysql2/mysql-bin.000001  --result-file=/home/binlog.1

查询的同时导入数据库:

mysqlbinlog --start-position=98 --stop-position=117 /var/lib/mysql2/mysql-bin.000001  |mysql -uroot -p

或者:
mysql> source /home/binlog.1
mysql  -u用户名 -p 数据库名  </home/binlog.1


根据时间来进行恢复:
mysqlbinlog --start-datetime="2009-12-01 12:00:00" --stop-datetime="2009-12-01 19:00:00" /var/lib/mysql2/mysql-bin.000001  --result-file=/home/binlog.1

结合系统命令可以只对某个表的操作进行恢复。

比如我只恢复对cdr 表的插入动作进行恢复:

#>grep "insert into cdr " /home/binlog.1  >/home/binlog.2

#>mysql -uroot -ppassword  asterisk </home/binlog.2