【问题标题】:SQLITE3 error: malformed database schema (is_transient) - near "where": syntax errorSQLITE3 错误:格式错误的数据库架构 (is_transient) - “where”附近:语法错误
【发布时间】:2015-07-28 07:51:34
【问题描述】:

我正在使用 OS X 10.9.5 和 Google crome:版本 44.0.2403.107(64 位)

Google Crome 将 cookie 存储在以下路径: /Users/(logged User)/Library/Application Support/Google/Chrome/Default/Cookies 我通过应用程序“SQLite Free - Datum”打开了这个文件;它显示列名是“cookies”,如图所示。

我通过 OSX 10.9.5 的终端打开了相同的文件。我在执行命令“SELECT * FROM cookies”时收到“格式错误的数据库架构(is_transient) - 在“where”附近:语法错误”,如下图所示。

【问题讨论】:

  • 可能是一个错误的触发器;从命令行显示.schema 的输出。

标签: macos sqlite


【解决方案1】:

OS X 10.9.5 (Mavericks) 默认安装 SQLite 3.7.13。 Chrome cookie 的数据库架构最近已更改为使用部分索引,这些索引在 SQLite 3.8.0 及更高版本 (https://www.sqlite.org/partialindex.html) 上受支持。 OS X 10.10 (Yosemite) 默认安装了 SQLite 3.8.5,因此您可以在 Yosemite 中通过终端访问数据库。

Chrome 团队似乎意识到早期版本的 SQLite 不支持部分索引,如以下错误报告所示:https://groups.google.com/a/chromium.org/forum/#!topic/chromium-reviews/5OPhshJdrTM

您能够在“SQLite Free - Datum”中打开数据库的原因很可能是应用作者附带了更新版本的 SQLite。

【讨论】:

  • 这个应用程序“SQLite Free - Datum”如何访问这些文件?
  • 他们很可能在编译应用程序时将较新版本的 SQLite 链接为静态库,因此应用程序使用的是该版本的 SQLite,而不是内置的系统版本(这是终端使用的) .
猜你喜欢
  • 1970-01-01
  • 2020-10-17
  • 2022-11-09
  • 2020-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-04
  • 2021-01-17
相关资源
最近更新 更多