前言:在笔者同事使用sqlit3的时候发生了database disk image is malformed错误,打开后发现db文件库没有问题,但其中一个表提示了这个问题,于是乎就有了这篇文章
步骤一、验证db文件库能不能打开
使用的是navicat验证打开的库,点击其中的一个表提示了错误

步骤二、需要安装sqlite-amalgamation-3460100工具

步骤三、将损坏的db文件放入这个工具文件夹下

步骤四、在此目录下打开cmd命令工具

步骤五、执行命令将损坏的数据库导出为 SQL 文件
sqlite3 "xxx.db" .dump > newsfeed.sql
步骤六、查看导出sql文件
打开导出的sql文件查看损坏的表数据是否已经导出

此时就已经成功了,我们在重新建表或者在导入回去都无所谓了。因为sql语句已经存在了。
步骤七、导入新表
sqlite3 new.db < newsfeed.sql
注意、sql文件中若导出的 SQL 文件最后一行是 ROLLBACK;,请将其修改为 COMMIT;,然后再次导入。
从新打开成功
错误原因分析:
查看官方解释如下

后面若有db库文件损坏或其它错误会再次更新