使用ThinkPHP恢复被删除MYSQL数据表记录

7 篇文章 0 订阅

说明:本方法适用与数据量不是很大的数据,如果你的数据量很多,建议在网上找找更专业的京城。

状况:数据表被删除,运行了两年的数据没了,大概1万来条数据。

在网上找了MySql BinLog日志恢复的方法,但在我的服务器上行不通,大部分介绍都是通过mysqlbinlog命令来筛选出需要的数据至一个sql文件,然后再导入这个sql文件。如下:

/usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:58:18" --stop-datetime="2018-04-27 20:58:35" --database=hello /var/lib/mysql/mysql-bin.000009 > restor.sql

类似上面的,但我只要选择了 -d database(数据库名)就会出现下面的提示:

/usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:58:18" --stop-datetime="2018-04-27 20:58:35" --database=hello /var/lib/mysql/mysql-bin.000009

WARNING: The option --database has been used. It may filter parts of transactions, but will include the GTIDs in any case.

没办法,只能把全部的数据转换成sql文件。

上面的mysqlbinlog命令,将日期等全部去掉。

/usr/bin/mysqlbinlog /var/lib/mysql/mysql-bin.000009 > restor.sql

这样你会得到一个所有日志的sql文件,如果你的服务器上有多个mysql-bin.000001类似这样的文件,那就一个一个的执行。

这个文件的编码是UTF-8,导出成SQL以后,打开看下,你会发现他里面记录着从你的服务器创建到目前所有的mysql操作日志。

如上图所示,看到这样的结构,再加上我的表名都是有前缀的,而被删除的也仅仅是特定的几个表,现在就有恢复数据的思路:

        用PHP读这个SQL文件,一行一行的读,如果是我要恢复的数据表,就执行这条SQL语句,如果不是就跳过。而且最好用命令行来运行。而ThinkPHP是我最熟悉的 。先在该SQL中找到你创建表的记录,或插入表的记录,然后在数据库中创建好你要恢复的数据表,结果一定要是最终版的,否则执行SQL语句会出错。TP5.1的命令行执行效率还是非常高的。

附上做的在命令行下运行的文件:

https://download.csdn.net/download/hotlinhao/35343459icon-default.png?t=L9C2https://download.csdn.net/download/hotlinhao/35343459

win下如何命令行运行thinkphp的代码:

1. 将php设置为环境变量,如果你装的是phpstuey默认是设置好 的,否则要带上php的全路径。

 2. 将目录切换到你站点的根目录,里面应该有think文件,此文件没有扩展名

以上是可以正常运行的命令行,至于代码出错那是自己的事情。

3. 就是配置好命令行下的第三个参数

 打开 application/command.php 文件

这里的vote就是命令行下的第三个参数:

 

剩下的就靠你自己好。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值