Sqlite3 error: malformed Database schema (is transient) - рядом с "where": синтаксическая ошибка

Я использую OS X 10.9.5 и Google crome: версия 44.0.2403.107 (64-бит)

Google Crome store cookies по пути: /Users/(logged User)/Library/Application Support/Google/Chrome/Default/Cookies Я открыл этот файл через приложение "SQLite Free-Datum"; он показывает, что имя столбца" cookies", как показано на рисунке.

enter image description here

Я открыл тот же файл через терминал OSX 10.9.5. Я получаю "malformed database schema (is_transient) - near "где": синтаксическая ошибка "при выполнении команды" SELECT * FROM cookies", как показано в pin ниже. enter image description here

1 ответов


OS X 10.9.5 (Mavericks) поставляется с SQLite 3.7.13 установлен по умолчанию. Схема базы данных для файлов cookie Chrome недавно была изменена для использования частичных индексов, которые поддерживаются на 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.