• sqlite数据库文件提示损坏修复方法


    第1章 说明    1

    1 下载SQLite Tools    1

    2 运行    2

    注意:为了方便,可把要修复的数据库文件直接放到sqlite3.exe路径下然后运行sqlite3.exe就不用输入具体路径了。

    sqlite3.exe 下载链接SQLite Download Page

    第1章 说明

    笔者编写的一个程序,无法往 SQLite 数据库文件里写数据。使用SQLiteSpy打开该文件后显示如下错误:

    图1

    上网搜到了这篇博文:http://blog.csdn.net/bamboo28/article/details/7034447

    把数据库文件修复后,问题解决。现将数据库文件修复步骤总结如下。

    1 下载SQLite Tools

    网址http://www.sqlite.org/download.html,下载文件sqlite-tools-win32-x86-3150200.zip

    图2

    2 运行

    解压sqlite-tools-win32-x86-3150200.zip。

    进入DOS命令窗口,如下图所示:

    图3

    首先运行sqlite3.exe,命令如下(注意:W:\Downloads\Chrome\sqlite-tools-win32-x86-3150200 是sqlite3.exe所在目录)

    "W:\Downloads\Chrome\sqlite-tools-win32-x86-3150200\sqlite3.exe"

    运行sqlite3.exe之后,将显示"sqlite>"提示符。依次运行如下命令:

    命 令

    说 明

    .open W:/Temp/bad.db

    打开损坏的文件 bad.db

    PRAGMA integrity_check;

    检查损坏的文件,这一步可以省略

    .output W:/Temp/t.sql 

    设定导出文件为 t.sql

    .dump 

    将bad.db的内容,以SQL语句的方式导出到文件 t.sql里

    .open W:/Temp/OK.db 

    创建数据库文件 OK.db

    .read W:/Temp/t.sql 

    从 t.sql 文件里导入数据

    .quit 

    退出 sqlite3.exe

    现在,W:\Temp\OK.db就是修复好的数据库文件了。文件W:\Temp\t.sql是临时文件,可以删除。

    /***************************************

    SQLite-database disk image is malformed,此句英文的意思是数据库文件损坏。

    怎么证明SQLite数据库文件损坏呢?

    首先sqlite3 database_name进入数据库

    然后运行命令 PRAGMA integrity_check;

    如果数据库文件损坏就会报损坏的错误,如何数据库文件是完好的就会显示OK。

    遇到这个问题怎么解决?
    网上一般的做法有两种:

    方法一:

    1、在https://www.sqlite.org/download.html网站上下载sqlite-tools工具,我下载的是http://sqlite-tools-win32-x86-3250300.zip

    2、解压上面的压缩包,并在命令行模式下进入该目录运行sqlite3.exe

     

    3、打开损坏的数据库文件

    .open d:/CloudPos.db
    1
    4、进行检测

    PRAGMA integrity_check;
    1
    5、设置导出文件为tmp.sql

    .output d:/tmp.sql
    1
    6、将CloudPos.db中的内容以sql方式导出到tmp.sql

    .dump 
    1
    7、创建temp.db数据库

    .open d:/temp.db 
    1
    8、从tmp.sql中导入数据

    .read d:/tmp.sql 
    1
    9、退出

    .quit 
    1
    方法二:

    使用SQLite Expert Professional工具提供的repair来修复db文件

     

  • 相关阅读:
    Linux C编译器从零开发二
    轻量封装WebGPU渲染系统示例<12>- 基础3D对象实体(源码)
    三天吃透Redis面试八股文
    https SSL证书使用 git bash 解密
    ICCV 2023 | MoCoDAD:一种基于人体骨架的运动条件扩散模型,实现高效视频异常检测
    Fluidd摄像头公网无法正常显示修复一例
    [ruby on rails]部署时候产生ActiveRecord::PreparedStatementCacheExpired错误的原因及解决方法
    TrustZone
    2022钉钉杯初赛A题(银行卡电信诈骗危险预测)
    一文带你解决Ajax!
  • 原文地址:https://blog.csdn.net/u011555996/article/details/126900527