MySQL 的 binlog 日志真的是个救命稻草,是你手滑删库跑路的时候(别问怎么知道的)。它会把像INSERTDELETE这样的操作都记录下来,等于说你可以“时光倒流”,恢复误删的数据。

启用 binlog 其实也不麻烦。改下/etc/my.cnf配置,加上log-binserver_id,顺便选个合适的binlog_formatSTATEMENT格式更容易还原 SQL 哦),重启服务就搞定。

操作完之后呢,每次你对数据库的修改都会被记录下来。比如你建了个tb1表,加了三条数据,不小心全删了?用mysqlbinlog一查日志,配合--stop-datetime参数,你就能找回删掉之前的状态。

不过要注意,binlog 恢复虽然强大,但用的时候一定小心别覆盖了现有数据。尤其是在生产环境,恢复前建议先把当前数据备份一下,稳妥点。

如果你经常和 MySQL 打交道,尤其怕误删误操作,那你一定要熟练掌握binlog 恢复这招,真的挺实用的。像mysqlbinlog命令、binlog 文件的路径/var/lib/mysql-bin.*这些细节,最好都熟悉点。

想更进一步,可以看看binlog2sql 工具,还能把 binlog 直接转换成可执行 SQL,恢复操作更直观。