MySQL 的 binlog 日志真的是个救命稻草,是你手滑删库跑路的时候(别问怎么知道的)。它会把像INSERT
、DELETE
这样的操作都记录下来,等于说你可以“时光倒流”,恢复误删的数据。
启用 binlog 其实也不麻烦。改下/etc/my.cnf
配置,加上log-bin
和server_id
,顺便选个合适的binlog_format
(STATEMENT格式更容易还原 SQL 哦),重启服务就搞定。
操作完之后呢,每次你对数据库的修改都会被记录下来。比如你建了个tb1
表,加了三条数据,不小心全删了?用mysqlbinlog
一查日志,配合--stop-datetime
参数,你就能找回删掉之前的状态。
不过要注意,binlog 恢复虽然强大,但用的时候一定小心别覆盖了现有数据。尤其是在生产环境,恢复前建议先把当前数据备份一下,稳妥点。
如果你经常和 MySQL 打交道,尤其怕误删误操作,那你一定要熟练掌握binlog 恢复这招,真的挺实用的。像mysqlbinlog
命令、binlog 文件的路径/var/lib/mysql-bin.*
这些细节,最好都熟悉点。
想更进一步,可以看看binlog2sql 工具,还能把 binlog 直接转换成可执行 SQL,恢复操作更直观。