参考博客:
https://www.cnblogs.com/liuyangQAQ/p/18037546
sqlite3数据库提示database disk image is malformed 解决办法-CSDN博客
【SQL】sqlite数据库损坏报错:database disk image is malformed(已解决)-CSDN博客
一、第一种方式:通过 使用SQLite Expert Professional软件来修复
官网:SQLite administration | SQLite Expert
直接拖入受损的db文件,然后进行Repair

通过New file ->Start就可以完成,如果文件比较大,那就比较耗时,等待即可
二、通过命令行,将db文件数据导出到.sql语句,然后建个新的db文件,放进去这样的流程
(1)首先安装数据库工具sqlite3
官网如下:
如下两个下载下来:

具体安装流程见:SQLite的安装与命令行使用(1)_sqlite命令行工具-CSDN博客
安装成功如下:

(2)在受损的db文件路径中,使用终端打开

(3)将受损的db文件导出.sql语句,如下步骤:
sqlite3 "受损数据库名字" (如:123.db)
.mode insert
.output repair.sql
.dump
.exit

发现多了个repair.sql

(4)新建个db文件,如下:

发现新生成一个 repair.db文件
下面有个注意点:由于这是受损的db文件生成的repair.sql,所以最后一句有问题:
将最后一行的Rollback
改为Commit;打开reapir.sql文件,直接拖到最后一行进行修改
(5)将repair.sql语句输出转换到repair.db中

再去看repair.db已经不再是空的了,修复完成