Firefox锁定place.sqlite

Mas*_*imo 5 sqlite firefox

平台:Firefox 3.6.13,Python 2.7无堆栈和Windows 7(尚未在Ubuntu上进行测试,我会...)

我尝试过apsw库:

conn = apsw.Connection( dir + profile + '/places.sqlite', apsw.SQLITE_OPEN_READONLY )
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

sqlite3_prepare apsw中的文件“ c:\ apsw \ src \ statementcache.c”,行386,BusyError:BusyError:数据库已锁定

我看到“ SQLite管理器”也可以在运行Firefox的情况下打开数据库。

我只想打开阅读,我认为操作很麻烦。而且我不能使用“ SQLite管理器”。我需要编写我的Python(或PHP或Perl)脚本。

1)Firefox在SQLite文件上使用哪种类型的锁?为什么?

2)“ SQLite管理器”如何工作?


Q2)SQLite Manager在Firefox内部的JavaScript中工作,因此它可以访问数据库。

这不是我想要的:外部应用程序在Firefox运行时读取。

Amo*_*mos 7

我不确定Firefox使用的锁定类型,但是我建议这样做:

将Firefox数据库文件复制到其他临时位置,然后从那里读取(这也降低了意外损坏原始文件的风险)。

我在Firefox 3. *上还没有使用此方法的问题。

  • 顺便说一句,我最近在打开Firefox 4的places.sqlite时遇到了问题。似乎在阅读它时需要SQLite 3.7,但尚未将其集成到所有第三方语言包装中(较旧的版本会出现“ db被加密”错误)。所以也要注意这个问题。 (2认同)

sdw*_*lsh 5

Firefox 使用 SQLite 获取数据库上的独占锁,这就是您无法打开它的原因: https: //www.sqlite.org/pragma.html#pragma_locking_mode