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

时间:2011-09-22 08:40:32

标签: python sql database sqlite

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

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

有没有人知道可能导致这种情况的原因?

编辑:

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

2 个答案:

答案 0 :(得分:2)

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

  

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

答案 1 :(得分:0)

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