开启bin-log

在MySQL的配置文件中添加配置项,然后重启mysql

server_id=1 //5.7要求
log-bin=mysql-bin

如果不知道mysql配置项在哪,可以使用一下命令查看

mysql --help --verbose|grep 'my.cnf'

可以看到配置项

查看 binlog名字

mysqlbinlog简介

--start-datetime 指定开始时间

--end-datetime 指定结束时间

mysqlbinlog --start-datetime="2016-08-09 5:05:27" /var/lib/mysql/mysql-bin.000001

--start-position 开始位置,即bingLog日志中的at后面的数字

--end-position 结束位置

mysqlbinlog --start-position="2698" /var/lib/mysql/mysql-bin.000001

查看当前的binlog状态

show binaray logs;

关于binlog文件的生成:每重启一次,便会重新生成一个binlog文件;还有一种情况就是运行了FLUSH LOGS命令也会重建一个;还有一种情况就是当这个binlog文件的大小到了设定的值后,就会重新生成一个新的,我这里之所以会有第二个,是因为我刷新了日志

还原

binlog 默认在/var/lib/mysql/下,导出binlog里面的数据

 mysqlbinlog --stop-position="2698" /var/lib/mysql/mysql-bin.000001 > Back.sql
# 还原
mysql -uroot -p < back.sql

当然我这个只是简单的尝试,实际生产如果真要这么干的话,要复杂的多,而且一般不要这么干,如果真的管理好的话,可以用定时备份的数据来还原

总结

  定期使用 FlUSH LOGS 或者 mysqladmin flush-logs ,该操作会关闭当前的二进制日志文件,并新建一个binlog日志文件。(和重启mysql后新建的binlog操作一样)。以备份binlog日志,利用binlog日志也可以做增量备份。

参考文章:http://www.cnblogs.com/hanyif...


soledad
888 声望35 粉丝

我们努力的付出想换来的是什么,我只想让自己过得快乐点