首页 产品活动 帮助文档 推荐主机
记一次在phpmyadmin中将帝国cms数据表误清空的恢复过程
时间:2021-02-20 18:04:24 浏览: 20次

        笔者采用帝国cms开发了一整套信息展示与计算系统,其中展示端只提供数据存储,而计算端采用独立的服务器,在计算完成后向主端post数据,由于数据量越来越大,小编进行了传输通道的优化,但疏忽了正确性校验问题,由于将小于号<误写为大于号>,导致数据存储表共计170万余条数据被清空。

        万幸小编在之前已经开启了mysqlbinlog二进制缓存功能,该功能虽对服务器缓存略有影响,但出现清库、删库,数据损毁等致命问题时,可有效的恢复数据,下面对数据恢复过程进行记录。

        一、保存日志。

       首先,我们第一之间对mysqlbinlog日志进行了封存,此次共计两个文件,分别为mysql-bin.000023、mysql-bin.000024。由于之前的数据库备份只到2019-02-03 22:17:04,后续的数据没有备份,我们需要在数据中把这部分提取出来重新入库。将两个日志文件下载到本地。

       二、导出日志。

        由于mysqlbinlog功能存储的日志为二进制,我们没有办法直接查看,所以我们本地搭建运行环境,首先将日志导出为sql版本。我们这里使用帝国cms官方提供的本地运行环境包。而后cmd内运行如下命令。

PHP 代码
  1. <?php  
  2. //导出sql语句  
  3. $file = "G:/sql/data1.sql";  
  4. $arr = file($file);  
  5. $str = '';  
  6. $insert = "insert into phome_ecms_diguocms(";  
  7. $update = "update phome_ecms_diguocms";  
  8.   
  9. foreach ($arr as $v){  
  10.     if (stripos($v$insert) !==false) {  
  11.         $str .= $v.";\r\n";  
  12.     }  
  13. }  
  14. file_put_contents("G:/sql/sql1.txt"$str);  
  15. ?>  

        接下来我们使用navicat或phpmyadmin导入该文件即可。

搜集全网渠道获取最新一手源码,通过“heikuyun”分享给相关从业者,您可以在本站找到任何你想要的程序源码来学习程序的写法!
友情链接
快速搜索

Powered By 黑酷云 © 2014-2020 【黑酷云】 版权所有 浙ICP备20005324号-1 | 浙公网安备 42011102000245号工信部

声明: 本站部分内容属于原创转载请注明出处 如有侵权行为请严格参照本站【版权声明】与我们联系,我们将在48小时内容进行处理!

Powered By 黑酷云 © 2014-2020 浙ICP备20005324号-1