我有一个大问题...我正在使用 SQLite 开发桌面应用程序,但是在复制/粘贴过程中,我失去了电源并且进程被终止,因此基础丢失了。但是,我找到了一种方法来恢复它,但 base 是加密的。当我尝试使用打开连接时出现conn.Open();此错误。如果我尝试使用 DB Browser for SQLite 打开它,它会询问我 SQLCipher 加密密码,因此我认为数据丢失了..
有没有默认密码?为什么会发生这种情况以及如何防止它再次发生?我能做什么 ?
提前致谢。
uli*_*tko 12
还要检查您“连接”的 SQLite 版本是否与数据库文件版本一致。
例如,这是一个由 SQLite 版本 3+ 编写的数据库文件:
$ file foobar.db
foobar.db: SQLite 3.x database, last written using SQLite version 3027002
Run Code Online (Sandbox Code Playgroud)
这里我还有 2 个版本的 sqlite:
$ sqlite -version
2.8.17
$ sqlite3 -version
3.27.2 2019-02-25 16:06:06 bd49a8271d650fa89e446b42e513b595a717b9212c91dd384aab871fc1d0alt1
Run Code Online (Sandbox Code Playgroud)
显然事后看来,foobar.db使用 sqlite 版本 2 打开将会失败,并产生相同的错误消息:
$ sqlite foobar.db
Unable to open database "foobar.db": file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)
但使用正确的版本一切都很好:
$ sqlite3 foobar.db
SQLite version 3.27.2 2019-02-25 16:06:06
Enter ".help" for usage hints.
sqlite>
sqlite> .databases
main: /tmp/foobar.db
sqlite>
Run Code Online (Sandbox Code Playgroud)
该错误消息包罗万象,仅表示无法识别文件格式。
| 归档时间: |
|
| 查看次数: |
27671 次 |
| 最近记录: |