Sequel gem и MySQL (Ruby + Windows): загрузить файл mysql.so, а не mysql.rb

Используя ruby ​​gem 'sequel', когда я пытаюсь выполнить Sequel.connect("mysql://localhost"), я получаю следующую ошибку:

Sequel::AdapterNotFound: LoadError: require 'mysql' did not define Mysql::CLIENT_MULTI_RESULTS!
  You are probably using the pure ruby mysql.rb driver,
  which Sequel does not support. You need to install
  the C based adapter, and make sure that the mysql.so
  file is loaded instead of the mysql.rb file.

Как я могу заставить этот гем подключиться к серверу MySQL?

Система: Win XP, Ruby 1.8.7, Mysql 5.1.51.


person JellicleCat    schedule 08.08.2011    source источник
comment
Я нашел рекомендацию запускать что-то в следующих строках в нескольких местах: sudo env ARCHFLAGS="-arch x86_64" gem install ruby-mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config Однако я использую Windows, поэтому я попробовал gem install ruby-mysql -- --with-mysql-config="C:\Program Files\...\my.ini" (я не знаю, что my.ini является моим файлом конфигурации.)   -  person JellicleCat    schedule 08.08.2011


Ответы (2)


Нашел решение в этой теме: Невозможно подключить mysql из драгоценного камня Sequel

Вызовите gem('mysql'), чтобы указать использование собственного драйвера sql до Sequel.connect().

(голоса за Джереми Эванса)

person JellicleCat    schedule 10.08.2011

Sequel — это ORM поверх существующих адаптеров базы данных.

Ошибка, которую вы получаете, связана с тем, что mysql gem не установлен.

Вы должны быть в состоянии решить эту проблему, выполнив gem install mysql

Поскольку гем MySQL в Windows предоставляется в виде двоичных файлов, это очень разумно по отношению к зависимости libmysql.dll, доступной в вашей системе.

Я рекомендую вам следующий учебник, который я составил, чтобы охватить правильную установку драгоценного камня в современных версиях MySQL:

http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/

Надеюсь это поможет.

person Luis Lavena    schedule 08.08.2011
comment
Итак, теперь я выполнил предоставленные вами инструкции, но когда я пытаюсь использовать Sequel, я получаю ту же ошибку, что и выше. - person JellicleCat; 09.08.2011
comment
Итак, вы установили гем mysql? работает ли он из IRB, как в статье, на которую я ссылаюсь? Что puts Mysql::CLIENT_MULTI_RESULTS выводит в консоли IRB? - person Luis Lavena; 09.08.2011
comment
Я установил гем mysql, и мне удалось подключиться к моему локальному серверу. ... Команда в вашем последнем комментарии возвращает NameError: uninitialized constant Mysql::CLIENT_MULTI_RESULTS. ... Мне не удалось использовать гем mysql для подключения к удаленному серверу на работе из-за следующей ошибки: Mysql::Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client, поэтому я пытаюсь заставить гем продолжения работать для соединения mysql. - person JellicleCat; 10.08.2011