sqlite 修复 database disk image is malformed 问题

这个问题是在解决客户工程的时候遇到的。

在网上的解决方法大多一致,就是先在旧数据库中导出sql文件再导入一个新数据库中。

暂时没有找到在图形界面下的导入导出选项,所以先用着命令行了。

SQLite官网这里可以下载对应的命令行窗口工具,文件比较小。

如果是Windows系统的话,第三个文件就是了。


然后在cmd中运行其中的sqlite3.exe文件:

直接运行肯定不行嘛,先定位到sqlite3.exe的目录底下,用命令cd来实现。 



然后再用命令连接对应的数据库sqlite3.exe XXX.db


直接连接的话就是按默认路径来了,当然你也可以用绝对路径来指定对应的数据库,比如sqlte3.exe E:\test.db这样。

如果对应的数据库不存在则会自动创建。

接下来按套路走就行了。

[这一段代码网上直接copy过来了]

导出:

sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit

导入:

注意:默认新建的数据库编码格式为utf-8,如果你原数据库编码是utf-16或者其他什么的话,请在.read操作前加上命令PRAGMA encoding = "UTF-XXX"调整到对应的编码格式后再做其他操作。

sqlite3 mynew.db
sqlite>.read tmp.sql
sqlite>.quit


然后这个新的mynew.db数据库中就存好我们之前数据库中的东西了。
好,问题解决,可喜可贺可喜可贺。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值