记一次:sqlit3恢复database disk image is malformed

前言:在笔者同事使用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库文件损坏或其它错误会再次更新

相关推荐
迷迭香yy3 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB4 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB4 小时前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库
weixin_539446784 小时前
Navicat Premium 17报缺少ODBC驱动
数据库
哦虎!5 小时前
【数据库】事务
java·数据库·mysql
倔强的石头_5 小时前
时序数据库的难题不只在写入速度
数据库
IT古董7 小时前
【WMS学习笔记系列】01-需求分析
大数据·数据库
zlinear数据采集卡7 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
Mico187 小时前
麒麟v10-MySQL InnoDB Cluster 完整部署与全场景验证(从入门到精通)
数据库·mysql