开启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://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。