有时,我们误删了MySQL数据库的一些数据,肯定希望能够恢复我们误删的数据,这是可以解决的。有一个解决的方案是使用MySQL的二进制日志,也是我们经常说的BinLog,不过前提是,在启动MySQL时已经启用BinLog功能。
查看BinLog功能是否启用:

看到第一行的Variable_name为log_bin,对应的Value是ON,即是启用,OFF则是停用。
BinLog功能可以通过配置或者命令来启用。
1.配置文件/etc/my.cnf
2.命令
停用
BinLog的相关文件,可以在MySQL的data目录看到
BinLog是二进制形式存储的,如果需要看里面的内容,可以通过命令查看。
查看日志的相关信息
mysqlbinlog恢复数据成sql文件
根据时间点恢复数据
根据偏移量恢复数据
官方对BinLog的说明:
https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html
查看BinLog功能是否启用:
mysql> show variables like 'log_%';看到第一行的Variable_name为log_bin,对应的Value是ON,即是启用,OFF则是停用。
BinLog功能可以通过配置或者命令来启用。
1.配置文件/etc/my.cnf
[mysqld]
log-bin=mysql-bin修改了my.cnf文件,需要重启MySQL后文件内容才生效。2.命令
停用
SET SQL_LOG_BIN=0启用SET SQL_LOG_BIN=1BinLog的相关文件,可以在MySQL的data目录看到
-rw-rw----. 1 mysql mysql 68K 12月 1 12:01 mysql-bin.000001
-rw-rw----. 1 mysql mysql 1.4M 12月 1 12:01 mysql-bin.000002
-rw-rw----. 1 mysql mysql 143 12月 1 13:08 mysql-bin.000003
-rw-rw----. 1 mysql mysql 1.6K 12月 1 16:57 mysql-bin.000004
-rw-rw----. 1 mysql mysql 76 12月 1 13:27 mysql-bin.indexBinLog是二进制形式存储的,如果需要看里面的内容,可以通过命令查看。
查看日志的相关信息
mysql> show binlog events in 'mysql-bin.000004'\Gmysqlbinlog恢复数据成sql文件
mysqlbinlog mysql-bin.000004 > mysql-bin.000004.sql根据时间点恢复数据
[root@localhost data]# ../bin/mysqlbinlog --start-datetime="2017-12-01 16:45:00" --stop-datetime="2017-12-01 16:50:00" mysql-bin.000004 | ../bin/mysql -uroot -p
Enter password: *****根据偏移量恢复数据
[root@localhost data]# ../bin/mysqlbinlog --start-position="50" --stop-position="100" mysql-bin.000004 | ../bin/mysql -uroot -p
Enter password: *****
官方对BinLog的说明:
https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.html
本文介绍如何利用MySQL的二进制日志(BinLog)恢复误删的数据,包括启用BinLog的方法、查看BinLog状态及内容的方式,以及通过指定时间点或偏移量恢复数据的具体步骤。
1万+

被折叠的 条评论
为什么被折叠?



