误删MySQL数据如何复原
本文主要给大家介绍误删MySQL 数据如何复原,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在创新互联行业资讯里面关注我的更新文章的。
创新互联专业为企业提供浦口网站建设、浦口做网站、浦口网站设计、浦口网站制作等企业网站建设、网页设计与制作、浦口企业网站模板建站服务,十余年浦口做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
数据库备份语句
mysqldump -S /tmp/mysql3309.sock -u root -pMySQL8.0 \
--single-transaction \
--quick --flush-logs \
--triggers \
--routines \
--events \
--set-gtid-purged=OFF \
--databases testdb > testdb.dump
备份时表 nw 存在以下数据
mysql> select * from nw;
+---------------------+
| dt |
+---------------------+
| 2018-11-12 10:20:26 |
| 2018-11-12 10:20:27 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:29 |
| 2018-11-12 10:30:53 |
| 2018-11-12 10:30:54 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:56 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:30:57 |
+---------------------+
将最近的备份和备份后的二进制文件拷贝另一台有 MySQL 实例的云服务器B
将二进制文件提取为明文文件,查询数据删除的时间点
mysqlbinlog --base64-output=decode-rows -v binlog.000006 > result.sql
#181112 10:34:23 server id 3309 end_log_pos 2846 Delete_rows: table id 694 flags: STMT_END_F
### DELETE FROM `testdb`.`nw`
### WHERE
### @1=1541989226
### DELETE FROM `testdb`.`nw`
在服务器B上还原数据库
mysql -S /tmp/mysql3309.sock -u root -pMySQL8.0 < testdb.dump
将删除数据前的二进制日志重新应用到数据库
mysqlbinlog --stop-datetime="2018-11-12 10:34:00" \
--skip-gtids binlog.000006 | \
mysql -S /tmp/mysql3309.sock -u root -pMySQL8.0
将表 nw dump 出来
mysqldump -S /tmp/mysql3309.sock -u root -pMySQL8.0 \
--single-transaction \
--quick --flush-logs \
--triggers \
--routines \
--events \
--set-gtid-purged=OFF \
testdb nw > nw.dump
提取 nw.dump 中的 insert 语句
grep "INSERT INTO \`nw\` VALUES" nw.dump > insert.sql
将 insert 语句在原数据库执行,查询结果数据已经恢复
mysql> use sbtest;
mysql> source insert.sql
mysql> select * from nw;
+---------------------+
| dt |
+---------------------+
| 2018-11-12 10:20:26 |
| 2018-11-12 10:20:27 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:28 |
| 2018-11-12 10:20:29 |
| 2018-11-12 10:30:53 |
| 2018-11-12 10:30:54 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:55 |
| 2018-11-12 10:30:56 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:30:57 |
| 2018-11-12 10:33:37 |
| 2018-11-12 10:33:38 |
| 2018-11-12 10:33:39 |
| 2018-11-12 10:33:40 |
| 2018-11-12 10:33:40 |
| 2018-11-12 10:33:41 |
| 2018-11-12 10:33:42 |
| 2018-11-12 10:33:42 |
| 2018-11-12 10:33:43 |
+---------------------+
注意:不要在原服务器上执行还原操作
看了以上关于误删MySQL 数据如何复原,希望能给大家在实际运用中带来一定的帮助。本文由于篇幅有限,难免会有不足和需要补充的地方,如有需要更加专业的解答,可在官网联系我们的24小时售前售后,随时帮您解答问题的。
网页标题:误删MySQL数据如何复原
链接分享:http://scyanting.com/article/pidipj.html