mysql binlog开启和使用

基础知识
二进制日志由配置文件的log-bin选项负责启用,Mysql服务器将在数据根目录创建两个新文件XXX-bin.001和XXX-bin.index,若配置选项没有给出文件名,Mysql将使用主机名称命名这两个文件,其中.index文件包含一份全体日志文件的清单。Mysql会把用户对所有数据库的内容和结构的修改情况记入XXX-bin.n文件,而不会记录SELECT和没有实际
使用日志进行数据库恢复
如果遇到灾难事件,应该用最近一次制作的完整备份恢复数据库,然后使用备份之后的日志
文件把数据库恢复到最接近现在的可用状态。
使用日志进行恢复时需要依次进行,即最早生成的日志文件要最先恢复:
mysqlbinlog xxx-bin.00001 | mysql -u root -p
mysqlbinlog xxx-bin.00002 | mysql -u root -p
开启方法如下
1.linux 在my.cnf
[mysqld]

1
2
3
4
5
6
# by evan
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
#binlog_do_db           = include_database_name
binlog_ignore_db        = include_database_name

2.windows 在my.ini(window)配置文件里面[mysqld]添加
[mysqld]

1
2
3
4
5
# by evan
expire_logs=5
#log-bin=D:/MysqlData/data/log-bin/logbin.log
log-bin=D:/MysqlData/Data/log/mysql-bin
binlog-ignore-db=ignore-dbname

恢复举例

1
mysqlbinlog -d games_s25 --start-datetime="2016-07-25 02:05:00" --stop-datetime="2016-07-25 04:40:00" "mysql-bin.000201" | mysql -uroot -ppassword