繁体   English   中英

SQLite3数据库文件 - 仅在Linux上损坏/加密

[英]SQLite3 Database file - Corrupted/Encrypted only on Linux

我目前正在编写一个Python脚本来与SQLite数据库进行交互,但它仍然返回数据库是“加密或损坏”。 数据库肯定没有加密,因此我尝试在命令行使用sqlite3库(返回相同的错误)和使用SQLite Manager加载项为Firefox打开它...

我有一个相同的数据库结构的副本,但在Windows框中由此程序的不同实例填充,我尝试使用SQLite Manager打开它,它很好,所以作为快速测试我加载“加密或损坏”数据库把它插入到USB记忆棒上并使用它首次打开的管理器插入到Windows机器中,没有问题。

有谁知道可能导致这种情况的原因是什么?

编辑:

在Linux机器上我尝试以root身份访问它而没有运气,我也尝试将其调整为777作为测试(在数据库的复制版本上),再次没有运气

您的Linux机箱是否与Windows机箱具有相同版本的SQLite? 旧版本的SQLite可能无法识别使用较新功能的文件。 例如, WAL日志模式

为了防止旧版本的SQLite尝试恢复WAL模式数据库(并且更糟糕),数据库文件格式版本号(数据库头中的字节18和19)在WAL模式下从1增加到2。 因此,如果旧版本的SQLite尝试连接到以WAL模式运行的SQLite数据库,它将报告“文件已加密或不是数据库”的错误。

您应该检查用户权限,Linux上的用户可能没有足够的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM