打开places.sqlite数据库firefox时出错

时间:2014-12-27 00:10:51

标签: python sqlite

我收到此错误:

sqlite3.DatabaseError: file is encrypted or is not a database

执行此代码时

import sqlite3
con = sqlite3.connect('d:\Users\Vladi\AppData\Roaming\Mozilla\Firefox\Profiles\iz2stysq.default\places.sqlite')
cur = con.cursor()
data = cur.execute("SELECT input FROM moz_inputhistory")

是的道路是正确的,所以......出了什么问题?

1 个答案:

答案 0 :(得分:3)

并非sqlitepysqlite的所有版本都与firefox的sqlite格式兼容。

使用

检查您的sqlitepysqlite版本和环境
import sys, sqlite3

print sys.version
print sqlite3.version
print sqlite3.sqlite_version

我在四个不同的环境中检查了相同的文件places.sqlite,并在其中两个(cygwin和canopy)上获得了不同的错误。在debiansqlite-shell-win32-x86-3080801上,它按预期工作。请参阅下面的摘要。

冠层上的

失败

  sys.version -> 2.7.6 | 64-bit | (default, Jun  4 2014, 16:30:34) [MSC v.1500 64 bit (AMD64)]
  sqlite3.version -> 2.6.0
  sqlite3.sqlite_version -> 3.6.21
  ERROR -> DatabaseError: file is encrypted or is not a database

在Windows 7上 cygwin 失败

  sys.version -> 2.7.3 (default, Dec 18 2012, 13:50:09) [GCC 4.5.3]
  sqlite3.version -> 2.6.0
  sqlite3.sqlite_version -> 3.7.17
  ERROR -> sqlite3.OperationalError: unable to open database file

debian 它有效!

  sys.version -> 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5]
  sqlite3.version -> 2.4.1
  sqlite3.sqlite_version -> 3.7.3
  it works!

sqlite-shell-win32-x86-3080801 [Windows 7(MS-DOS-Box)] 上有效!

  sqlite3.exe -version -> 3.8.8.1 2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55
  it works!