Mysql中使用mysqlbinlog恢复数据
Binlog日志,即二进制日志文件,用于记录用户对数据库操作的SQL语句信息,当发生数据误删除的时候我们可以通过binlog日志来还原已经删除的数据,还原数据的方法分为传统二进制文件还原数据和基于GTID的二进制文件还原数据
首先登录服务器的Mysql:mysql -u rooot -p
输入密码后,执行:show master status\G;可以看到二进制日志文件
我们可以执行:show binlog events in 'binlog.000001'来查看这个日志文件信息
确保日志是我们需要的信息我们可以退出mysql,然后执行:
mysqlbinlog --no-defaults --start-datetime="2021-05-30 00:00:00" --stop-datetime="2021-05-31 11:00:00" datas/mysql-bin.000022 -d testdb > datas/testdb.sql
这里说的是:datas/mysql-bin.000022是mysql二进制日志文件路径,-d参数指定需要操作的数据库,执行后,将保存到datas目录下的testdb.sql中
执行完了后,我们得到一个SQL文件,文件中是我们在筛选日志中对testdb库所做的一切操作。
恢复前,我们需要备份当前的库,然后清空里面得数据
我们可以再次登录mysql,然后执行source datas/testdb.sql即可恢复之前的所有操作数据内容
mysqlbinlog的操作有比较多的筛选数据参数,详细可以搜索引擎了解下。