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

Python SQLite3数据库文件-仅在Linux上损坏/加密,python,sql,database,sqlite,Python,Sql,Database,Sqlite,我目前正在编写一个Python脚本与SQLite数据库交互,但它不断返回数据库“加密或损坏”。 数据库肯定没有加密,所以我尝试在命令行中使用sqlite3库(返回相同的错误)和用于Firefox的SQLite管理器插件打开它 我有一个相同数据库结构的副本,但在一个windows机箱上填充了该程序的不同实例,我尝试使用SQLite Manager打开它,结果很好,因此作为一个快速测试,我将“加密或损坏”的数据库加载到U盘上,并将其插入windows机器,使用管理器,它第一次打开时没有问题 有人知道

我目前正在编写一个Python脚本与SQLite数据库交互,但它不断返回数据库“加密或损坏”。 数据库肯定没有加密,所以我尝试在命令行中使用sqlite3库(返回相同的错误)和用于Firefox的SQLite管理器插件打开它

我有一个相同数据库结构的副本,但在一个windows机箱上填充了该程序的不同实例,我尝试使用SQLite Manager打开它,结果很好,因此作为一个快速测试,我将“加密或损坏”的数据库加载到U盘上,并将其插入windows机器,使用管理器,它第一次打开时没有问题

有人知道这是什么原因吗

编辑:


在Linux机器上,我尝试以root用户身份访问它,但没有运气,我还尝试将其修改为777,只是作为一个测试(在复制的DB版本上),同样没有运气,您应该检查用户权限,Linux上的用户可能没有足够的权限。

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

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


我尝试以root用户身份访问它,但运气不好,我还尝试将其修改为777,只是作为测试(在DB的复制版本上),同样没有运气。事实证明,用于firefox的SQLite管理器使用内置在firefox中的SQLite版本,最初生成数据库的程序也使用自己的内置版本,然后我在系统本身上有了第三个版本。。。在linux机器上快速升级到3.7提供了对它的访问。再次感谢