Sqlite修复方法(database disk image is malformed)

前端之家收集整理的这篇文章主要介绍了Sqlite修复方法(database disk image is malformed)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

转自:http://hi.baidu.com/9562512/blog/item/81932e3e432bc33770cf6cd4.html

遇到 sqlite3 数据库错误 “database disk image is malformed”,G 了一下,搞定,遂记录,帮人帮己。运行
PRAGMA integrity_check;
发现
*** in database main ***
On tree page 120611 cell 0: 3 of 4 pages missing from overflow list starting at 120617
On tree page 120616 cell 0: 3 of 4 pages missing from overflow list starting at 120621
On tree page 3309 cell 0: 3 of 4 pages missing from over@H_403_20@@H_403_20@@H_403_20@@H_403_20@
假设原数据库 @H_403_20@@H_403_20@abc.db@H_403_20@
运行命令(需要sqlite3命令行工具,可从官方下载http://www.sqlite.org/download.html)@H_403_20@@H_403_20@


sqlite3 abc.db
@H_403_20@
@H_403_20@@H_403_20@.output “_abctemp.tmp”
.dump
.quit@H_403_20@

再建个新数据库 @H_403_20@abc2.db@H_403_20@

sqlite3 abc2@H_403_20@@H_403_20@@H_403_20@.db
@H_403_20@
@H_403_20@.read “_abctemp.tmp”

.quit

删除abc.db,mv abc2.db  abc.db

然后修复原来的数据库名和文件权限,应该就没事了。

猜你在找的Sqlite相关文章