ThinkingSphinx::SphinxError (неизвестная ошибка MySQL)

#mysql #ruby-on-rails #macos #sphinx #thinking-sphinx

#mysql #ruby-on-rails #macos #сфинкс #мышление-sphinx

Вопрос:

Я пытаюсь запустить gem ‘thinking-sphinx’ в моем проекте Ruby on Rails, но что-то было не так. Когда я запускаю любую команду поиска в любой модели, я вижу эту ошибку: ThinkingSphinx:: SphinxError (неизвестная ошибка MySQL).

Подробнее:

  • macOS Mojave -версия 10.14.3
  • mysql -версия 8.0.15 (установлена первой)
  • Sphinx -v 2.2.11_2 (устанавливается через ‘brew install sphinx’)
  • мышление-sphinx -v 4.2.0
  • Rails -версия 5.2.2

Перед запуском команды поиска я запустил rails ts: index и rails ts: start
Что я делаю не так?

Ответ №1:

Sphinx версии 2.2 (и 3.0) несовместим с MySQL версии 8. Вы либо захотите понизить версию MySQL до 5.7, что можно сделать с помощью homebrew через brew install mysql@5.7 , а затем удалить и переустановить Sphinx, либо загрузите двоичные файлы для Sphinx v3.1.1 (первая версия, поддерживающая MySQL v8) с веб-сайта Sphinx (исходный код для этой версии в настоящее время недоступен, следовательно, он не может быть установлен через homebrew).

Комментарии:

1. Я установил mysql@5.7 , следуя инструкциям по ссылке gist.github.com/operatino/392614486ce4421063b9dece4dfe6c21 . Перед установкой я удалил mysql -v8. Но я вижу ту же ошибку. Возможно, это связано с тем, что при установке sphinx в консоли отображается Installing sphinx dependency: mysql; Downloading https://homebrew.bintray.com/bottles/mysql-8.0.15.mojave.bottle.tar.gz

2. Теперь mysql -V возвращает Ver 14.14 Distrib 5.7.25, for osx10.14 (x86_64) using EditLine wrapper

3. Есть ли способ сообщить Homebrew не устанавливать последнюю версию (v8) MySQL в зависимости от Sphinx? В противном случае вы можете захотеть получить двоичные файлы 2.2.11 с веб-сайта Sphinx (или исходный код и скомпилировать его самостоятельно).

4. @Mr.DannyX как вы решаете эту проблему?

5. @pat как скомпилировать после загрузки?

Ответ №2:

Просто изменил mysql2 с gem "mysql2", '~> 0.4.6' на gem "mysql2", '0.4.10' версию, и у меня это сработало. Спасибо