恢复的前提是开启了binlog二进制的记录,就是mysql做了如下的配置
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 1000M
binlog-format = row
然后重启就开启了。
误操作后,先mysql查询: show master logs;
看到有如mysql-bin.000001这种形式的记录,就证明是可以恢复的。
然后进入log文件的文件夹,我的位置在/var/lib/mysql
输入:
mysqlbinlog mysql-bin.000001 --start-datetime='2018-04-09 09:30:30' --stop-datetime='2018-04-16 17:05:30' | mysql -uroot -p1234 project_schedule -f
这段命令的作用是 将project_schedule这个数据库,从2018-04-09 09:30:30到2018-04-16 17:05:30的所有命令全部执行一遍,-f的作用是遇到错误略过继续执行。
一般情况下,可以只设置终止时间不设置起始时间,这样就会将到终止时间的所有命令全部执行,变相达到回滚到之前时间点的效果。