首页 > 数据库 >sqlite3数据库提示database disk image is malformed 解决办法

sqlite3数据库提示database disk image is malformed 解决办法

时间:2022-12-09 10:24:04浏览次数:83  
标签:tmp 语句 修复 database 数据库 malformed sqlite3 临时文件

在嵌入式产品中,用sqlite3进行数据存储是非常常用且有效的方法。

但是最近在项目中遇到了数据库被损坏的情况,具体表现为使用数据库管理软件打开数据库后,使用sql语句对数据进行处理时,提示 database disk image is malformed ,如下图所示:

使用sqlite3命令行查询数据条数:

 

 

 

解决办法:

1、使用数据库管理工具进行修复

安装SQLite Expert Professional数据库管理软件,参考:https://blog.csdn.net/fangye945a/article/details/96908513

使用SQLite Expert Professional 打开数据库,点击Database选项页,点击Repair按键进行修复。

选择new file,指定修复完成的数据库目标路径,点击start按钮开始修复,如果数据库比较大,耐心等待即可。

修复完成的数据库如下所示:

2、通过终端命令行对数据库进行修复

1、使用sqlite3命令打开损坏的数据库,将关键数据导出到临时文件。

sqlite3 db20190704_001.db3
sqlite>.output tmp.sql
sqlite> .dump
sqlite> .quit
2、将临时文件导入到新的数据库。

sqlite3 repair.db3
sqlite>.read tmp.sql
sqlite>.quit
若在执行.output tmp.sql时报错,但是数据导出大部分了,使用Notepad++打开临时文件tmp.sql即可看到一条条SQL语句。

按照损坏的数据库表格式创建新的空数据库,将数据库导出到临时文件,比对两个临时文件,即可看到损坏的地方。SQL语句拷贝到新建的临时文件中即可。

打开新生成的数据库,执行步骤2,对手动修改好的临时文件进行读取操作,即可完成修复。

修复完成后,执行SQL语句:

 

标签:tmp,语句,修复,database,数据库,malformed,sqlite3,临时文件
From: https://www.cnblogs.com/dll102/p/16968202.html

相关文章