写在前面:
当进行mysql数据库操作的时候,偶尔会因为操作人的误操作可能导致数据库数据丢失或者造成无法挽回的损失,这个时候我们就可以用到musql的binlog文件,也就是二进制日志文件将数据库刷新到案发之前。
实现步骤:
1.取到mysql的binlog日志,然后回忆案发的时间,获取最近备份的数据库时间,如果没有数据库而binlog日志又不完全的话,就基本没治了。将案发时间确认下来后就可以将日志进行分割,按备份时间开始到案发时间进行操作:
mysqlbinlog --database=数据库名 --start-date="2014-09-24 05:34:00" --stop-date="2014-09-24 08:34:00" mysql-bin > test.sql
2.这里最好找一台比较好的机器,然后在上面创建一个和真实库一模一样的数据库进行操作。
mysql -u用户名 -p密码 --force --no-beep -D 数据库名 < test.sql
3.经过一段时间的重新写入,当然有可能出现连接超时,sql文件过大等问题,这个时候可以通过增加mysql缓冲区大小和等待时间来处理,最后得到了案发前一丢丢时间的库,就可以拿去给问题库换血了。