sqlite数据库文件坏了,打不开,也无法修复,,,,,急死人也。费半天劲终于找到可以成功的解决方案,在此分享给大家,少走弯路。
sqlite 大家都知道,就不多说了。
@H_301_7@有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题。 @H_301_7@
@H_301_7@先下载一个 sqlite3 的命令行工具,下载对应系统版本的
@H_301_7@可以到我的资源。。。。下载,免费的
@H_301_7@下载完成后解压到一个目录下,顺便把要修复的数据库也放到该目录下。 @H_301_7@
@H_301_7@通过CMD命令进入到该目录。
@H_301_7@执行以下命令: @H_301_7@sqlite3 要修复的数据库名 @H_301_7@.output XX.sql
@H_301_7@.dump @H_301_7@.quit @H_301_7@该命令是将旧数据库的内容提取出来,保存到一个临时文件中 @H_301_7@用编辑器打开刚刚生成临时文件 XX.sql 看看文件的最后一行是不是 @H_301_7@ROLLBACK; -- due to errors @H_301_7@是则把它删掉,并加上 @H_301_7@COMMIT; @H_301_7@如果最后一行是 COMMIT; 则忽略此步骤。 @H_301_7@
@H_301_7@再到终端,输入一下命令: @H_301_7@sqlite3 新数据库名 @H_301_7@.read "XX.sql" @H_301_7@.quit @H_301_7@此命令是将旧数据写到新数据库里面。 @H_301_7@至此,数据库修复完毕。可能有点小缺陷,数据会丢失一小部分,不过至少大部分数据都还在,数据库也能继续使用了。