| 前言
为了给广大喜欢phpbloger,喜欢一俊的朋友更加友好的使用phpbloger,因此我打算在服务器上配置一个测试环境给大家使用,并且完善昨天写的安装程序,也刚好在线上做一波测试,不了在执行install的第三部也就是配置数据库这一步,手残导致数据库名称和服务器生产环境的数据库名称填写成一致了,导致把生产环境的数据替换诚本地的数据了,蛋疼的结果!只能想办法恢复数据了,下面我说下方法,希望能够解决和我遇到同样窘境的小伙伴!
| 方法一 :快照回滚
服务器如果开启了快照的话,直接回滚一下就可以解决,由于我没有设置导致此法不同,好气的有木有!
| 方法二 :binlog 前提是开启了binlog
如果数据库没有开启binlog就比较的蛋疼了,我也不知道怎么才能搞回来,估计没戏,我们下面说如何通过binlog恢复数据
连接数据库
1 | mysql -uroot -ptangyijun520 |
查看是否有binlog文件
1 | show master logs; |
讲binlog导出成sql
1 | mysqlbinlog --no-defaults --database=ecard --start-datetime= '2017-05-18 09:38:00' /data/mysql/mysql-bin.000005 > log.sql |
这里的话容易出错,很多环境运行会出错包括我在内,我的方法是直接全部导出,然后在手动的把错误执行的sql语句删除,在直接导入到数据库即可
我的方法:
1 | mysqlbinlog --no-defaults /data/mysql/mysql-bin.000005 > log.sql #直接导出到root下了 |
下载log.sql文件
修改sql文件
导入新的sql文件
嘿嘿嘿恢复成功,需要注意的是我这里导出的log是整个数据库的,如果需要单独导出失误操作的数据库还需要自己查查资料!1source /root/log.sql
友情提示:垃圾评论一律封号...