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、打开损坏的数据库文件
代码语言:javascript
复制
.open d:/CloudPos.db
4、进行检测
代码语言:javascript
复制
PRAGMA integrity_check;
5、设置导出文件为tmp.sql
代码语言:javascript
复制
.output d:/tmp.sql
6、将CloudPos.db中的内容以sql方式导出到tmp.sql
代码语言:javascript
复制
.dump
7、创建temp.db数据库
代码语言:javascript
复制
.open d:/temp.db
8、从tmp.sql中导入数据
代码语言:javascript
复制
.read d:/tmp.sql
9、退出
代码语言:javascript
复制
.quit
方法二:
使用SQLite Expert Professional工具提供的repair来修复db文件
参考:https://www.cnblogs.com/willaty/articles/8022094.html https://blog.csdn.net/fangye945a/article/details/94762526 https://blog.csdn.net/weixin_34187822/article/details/86027770