sqlite数据库死亡提示database disk image is malformed的修复经历

  今天在处理一个客户的问题时,发现使用客户的sqlite数据库,本地调试代码报database disk image is malformed,查了下说是文件损坏了,网上有修复的方法,说实话开始也不抱太大希望,因为之前修复过一次没成功,上次时间有点久了具体情况不太记得了。这次也就是看本地都有之前下载的现成的工具,修复也不麻烦就又尝试了下,结果成功了,惊喜。记录下以防后面忘记。

 

  一、下载sqlte3.exe
    通过sqlite官网下载地址:https://www.sqlite.org/download.html
    找到windows环境的当前最新版:https://www.sqlite.org/2022/sqlite-tools-win32-x86-3380500.zip

  二、使用步骤
  1.解压sqlite-tools文件
    将sqlite-tools压缩文件中的sqlite3.exe文件解压到您损坏的数据库目录下。

  2.导出受损数据库的数据

  指令如下:  

  sqlite3 old.db
  sqlite>.output tmp.sql回车   sqlite>.dump回车   sqlite>.quit回车

 

  此时会生产一个备份文件tmp.sql,
  用文本编辑软件打开tmp.sql文件,找到最后一行
  将ROLLBACK;修改成Commit;
  后保存文件

  3.创建新数据库导入数据到新数据库
  指令如下:(例如数据库文件为new.db)

  sqlite3 new.db回车
  sqlite>.read tmp.sql回车
  sqlite>.quit回车

 

此时会产生一个新数据库new.db。不出意外的话这个数据库文件一般可以使用。

注意:一定要把导出的tmp.sql文件最后一行的ROLLBACK;修改成Commit;

借鉴:https://blog.csdn.net/SmartYJC/article/details/124736103

posted @ 2023-02-10 13:42  卡萨丁·周  阅读(720)  评论(0编辑  收藏  举报