不知什么原因,发现系统突然不能使用,使用工具连接数据库文件时提示“database-disk-image-is-malformed”错误。
问题
不知什么原因,发现系统突然不能使用,使用工具连接数据库文件时提示“database-disk-image-is-malformed”错误。 能怎么办呢,直接开始解决(百度)。
解决
到C:\Program Files (x86)\Android\android-sdk\platform-tools目录下找到sqlite3.exe文件工具开始一顿如下操作。
- 命令行打开sqlite3.exe并读取损坏的文件
sqlite3.exe oldDB
此时进入了sqlite命令行环境
- 导出sql语句到临时文件
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit
修改tmp.sql文件 由于数据库文件损坏,所以sqlite自动将tmp.sql最后一行加上了一句Rollback,因此我们需要手动修改tmp.sql文件,将最后一行的Rollback改为Commit;。
读取tmp.sql并写入到新库中
>sqlite3.exe NewDB
sqlite>.read tmp.sql
sqlite>.quit
原因
正在探索……
参考资料
本文会经常更新,请阅读原文: https://dashenxian.github.io/post/%E4%BF%AE%E5%A4%8Dsqlite3%E6%95%B0%E6%8D%AE%E5%BA%93database-disk-image-is-malformed ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com) 。