Sqlite 数据库出现“database disk image is malformed”错误,即损坏后的解决方法

Sqlite数据库出现错误:database disk image is malformed

 

修复方法如下:

说明: 

  1.把已损坏的目标数据库LogisDB放在一个简洁些的磁盘文件夹里,比如就放在F:盘下;

  F:\>

 

  2.然后由Windows的cmd命令cd引导到该磁盘文件夹路径(就是F:\>盘),并输入 Sqlite3命令来初始化LogisDB,表示接下来进入Sqlite3 的命令行,并准备操作这个既有的LogisDB数据库(我的目的是要从其中提取核心数据);

  F:\>sqlite3 LogisDB

 

  3.接下来的思路便是,将已损坏的数据库LogisDB中的核心数据输入到一个 .tmp文件(名称随便取);

  sqlite> .output "_LogisDB_Temp.tmp"

 

  4.既然LogisDB的核心的数据已输入到了 .tmp,那么在F盘下可以删除掉这个旧的LogisDB

  5.尽情的 dump,进行修复工作,随后 quit离开一下;

  sqlite> .dump

  sqlite> .quit

 

  6.再定到到F盘,还是以同样的命令初始化:Sqlite3 LogisDB,它表示新建一个数据库,并准备对它进行操作;

  F:\>sqlite3 LogisDB

 

  7.将 .tmp的内容写(read)到该新建的数据库;

  sqlite> .read "_LogisDB_Temp.tmp"

 

  8.quit离开就可以了,至此我们摒弃了已损坏的旧数据库,而将其核心数据捞取到了一个崭新的数据库内,而且名称不变。

  sqlite> .quit

 

-----------------------------------------------------------------------------------------

以下是从另一个贴子转过来的,也可以参考一下,而且还附有一张截图!

D:\workspace\ctrguangfa\db>sqlite3 ctrgf.db3

SQLite version 3.4.0

Enter ".help" for instructions

sqlite> .output "_abctemp.tmp"

sqlite> .dump

sqlite> .quit

 

D:\workspace\ctrguangfa\db>sqlite3 abc.db3

SQLite version 3.4.0

Enter ".help" for instructions

sqlite> .read "_abctemp.tmp"

sqlite> .quit

 

Sqlite 数据库出现“database disk image is malformed”错误,即损坏后的解决方法

 

你可能感兴趣的:(database)