2018年8月2日,是黑暗的一天。 今天我撞到了MySQL的漏洞,不小心删除了整个表格的数据。 那时,我的心死了,很凉爽。 但是我马上报告这个问题,运维立即停止服务,(为什么停止服务? 脑壳想想就知道了),我问了承运人有没有备份。 承运人说备份将在晚上两点进行备份。 使用备份数据的话,今天上午也没有新的数据。 于是我马上命令show veriables like 'log_% '; 检查日志是否打开。 因为感谢mysql打开cxdlslog,所以今天会记录不小心删除库并使用cxdlslog回滚的具体操作。
1、最重要的是,在错误删除库后,及时停止服务,并通知开发人员不要继续写入数据库。 另一方面,复盖日志太大需要回滚的日志
2、我马上show veriables like 'log_% '; 此命令位于cxdlslog的位置,并找到最近的log;
3、cxdlslog是二进制文件vi vim cat,不能直接看到我们想看的东西。 如果我们使用mysql附带的工具查看,则命令:
/usr/local/MySQL/cxd ls/mysqlcxdlslog-- base64-output=' decode-rows '-v/var/log/MySQL/MySQL-cxd ls
输出的日志时,将显示sql语句
4、下面按照https://github.com/danfeng Cao/cxdlslog2SQL链接中的步骤,将在delete中丢失的所有数据回滚到insert语句中
在上面的链接中进行操作时,由于cxdls-log的位置权限不足,mysql无法重新启动,发生了错误。 (starting MySQL.theserverquitwithoutupdatingpidfile )/usr/local/MySQL/MySQL
0nuubf3qbez.pid () ) )解决方法:运行chown-r MySQL : MySQL/var/data“chmod-r755/usr/local/MySQL/data”
这是一次宝贵的经历,这个记录只是记录了删除具体库后如何回滚的想法,剩下的操作需要看到的朋友去尝试!
转载于链接:https://my.oschina.net/u/3689525/blog/1922536