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

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

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

使用SQLite Expert查询数据条数:

解决办法: 

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语句:

sqlite3数据库提示database disk image is malformed 解决办法相关推荐

  1. 解决SQLite3数据库Error: database disk image is malformed

    解决SQLite3数据库Error: database disk image is malformed 比如数据库:test.db 情况一: sqlite3 test.db ".dump&q ...

  2. Sqlite 数据库出现database disk image is malformed报错的解决方法

    Sqlite 数据库出现database disk image is malformed报错的解决方法 参考文章: (1)Sqlite 数据库出现database disk image is malf ...

  3. FMDB数据库损坏 database disk image is malformed, code:11

    FMDB数据库损坏 database disk image is malformed, code:11 使用FMDB数据库的时候,有时会遇到 数据库损坏的问题,FMDB又没有提供修复工具,导致App数 ...

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

    文章目录 前言 一.下载sqlte3.exe 二.使用步骤 1.解压sqlite-tools文件 2.导出受损数据库的数据 3.创建新数据库导入数据到新数据库 总结 前言 SQLite数据因为各种原因 ...

  5. 修复损坏的SQLite数据库文件(database disk image is malformed)

    文章目录 问题与原因 修复数据库 命令行修复 一.准备 二.命令行打开被损坏的数据库文件 三.导出sql语句到临时文件 四. 修改tmp.sql文件与写入到空数据库中 SQLite Expert Pr ...

  6. database disk image is malformed解决方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱 ...

  7. sqlite错误 The database disk image is malformed database disk image is malformed 可解决

    以下为原文. http://www.sunnyu.com/?p=201 SQLite有一个很严重的缺点就是不提供Repair命令. 导致死亡提示database disk image is malfo ...

  8. SQLite数据库学习笔记1:报错:The database disk image is malformed

    目录 问题现象: 问题分析: 解决方法: 问题现象: 今天在项目中用到了SQLite数据库,此前并未学习过,因此就简单的了解了一下,很快就遇到了第一个小问题,报错如下: The database di ...

  9. SQLite database disk image is malformed死亡错误及初恢复

    项目中突然遇到远程的嵌入式Linux设备里面上传的数据库打开出现database disk image is malformed死亡错误,提示哪张表出问题了,如下图 一时,脑塞..##¥¥%& ...

最新文章

  1. oracle 输出重复记录,ORACLE 去除重复记录
  2. 听说redux和react-redux在写项目中更配哦
  3. 『Lucas定理以及拓展Lucas』
  4. 如何防御DDoS攻击
  5. 用户操作-用户添加流程分析
  6. c++ vector拷贝构造_vector------stl学习笔记一
  7. 如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?
  8. mysql版本查询命令
  9. EXCEL【数据处理之数据抽取——字段拆分】
  10. RTOS 入门资料 整理
  11. springboot基于java的邮件收发管理系统毕业设计源码101025
  12. 裴波那契数列的递归和动态规划算法
  13. 浏览器怎么录制网页视频?3种网页视频录制方法
  14. C++OpenCV系统学习(3)——图像混合、调整亮度与对比度
  15. 浏览器搜索去除广告项
  16. 清华应届程序员同时被5家公司录取,晒出工资,网友:羡慕
  17. 实现自定义小圆圈加载
  18. 【P02】47耳放的优化版本,全资料下载
  19. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 引理2
  20. android与华为窄带物联网,中国移动联合华为在成都布局窄带物联网

热门文章

  1. javascript获取系统时间时区_javascript获取系统当前时间的方法
  2. WPF通用枚举值转枚举名称转化器
  3. 太原免费学计算机,太原锦华计算机学校官网-山西专业的电脑学校,专注电脑教育16年,电脑培训就选择锦华电脑学校...
  4. python-同步、异步io
  5. java中平方的表达式_JAVA语言中的运算符和表达式
  6. php实现Stripe支付
  7. artDialog基本使用
  8. pivot sqlserver 条件_SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
  9. 开源操作系统 LineageOS 16.0 发布,基于 Android 9 开发
  10. linux下单机版zookeeper安装