Установка адаптера MySQL2 для Ruby

#mysql #ruby-on-rails #ruby #mysql2

#mysql #ruby-on-rails #ruby #mysql2

Вопрос:

Я получаю некоторые ошибки при подключении к MySQL, и их исправление привело меня к обновлению mysql2 gem.

Я выполнил эту команду для установки mysql2:

 ruby install mysql2
  

и теперь «список драгоценных камней» показывает этот драгоценный камень: mysql2 (0.3.2)

Но я думаю, что это все еще не является частью моей прикладной среды, поскольку сервер выдает эту ошибку:

 Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter)
  

У меня есть RVM, и я использовал bundler для создания gemset для этого приложения. Как я могу добавить mysql2 в gemset этого приложения?

Это мой gemfile:

 source 'http://rubygems.org'

gem 'rails', '3.0.7'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem 'mysql2' , '0.3.2' 
  

И это моя версия адаптера MySQL:

 $bundle show mysql2
/home/agenadinik/workspace/udfr/mysql2/ruby/1.9.1/gems/mysql2-0.3.2
  

Также

$ rvm gemdir /home/agenadinik/.rvm/rubies/ruby-1.9.2-p180/bin/gem: 4: предупреждение: Небезопасный мировой каталог для записи / home / agenadinik в PATH, режим 040777 /home/agenadinik/.rvm/gems/ruby-1.9.2-p180

Ответ №1:

Обратите внимание, что вы не можете использовать mysql2 версии 0.3.x с версией Rails меньше 3.1.x. Я предполагаю, что вы используете Rails 3.0.x или ниже (и, следовательно, вам нужно использовать mysql2 версии 0.2.x):

Вот пример того, как настроить gemset и Gemfile для использования mysql2:

 ~/code/myapp $ rvm gemset create myapp
~/code/myapp $ rvm use @myapp
<<<<<Edit the Gemfile and add the line gem "mysql2","0.2.7" then save and exit editor.>>>>>
~/code/myapp $ bundle install
~/code/myapp $ bundle show mysql2
<<<<<Output should be similar to: /home/<your-name>/.rvm/gems/ruby-<some-version>@myapp/gems/mysql2-0.2.7>>>>>
  

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

1. @Zabba Вы знаете, моя версия mysql2 — mysql2 (0.3.2), которая появилась после того, как я запустил bundle install. И затем команда bundle show mysql2 выдала это сообщение: Не удалось найти gem ‘mysql2 (= 0.2.7)’ ни в одном из источников gem, перечисленных в вашем Gemfile.

2. @Zabba итак, я думаю, что мой mysql2 каким-то образом не установлен / не настроен …. верно? Но, кажется, я только что выполнил все действия по установке. Запутался 🙂

3. Пожалуйста, опубликуйте свой Gemfile и выходные данные команды rvm gemdir . Кроме того, какое имя вы создали для набора драгоценных камней? Кроме того, в каком каталоге вы работаете bundle install (т.Е. Что такое pwd ) и содержит ли Gemfile в этом каталоге строку gem "mysql2", "0.2.7" ? И каков вывод команды rvm current .

4. @Zabba только что отредактировал исходный вопрос с информацией, которую вы опубликовали

5. Я вижу, что вы не выполнили шаги, которые я изложил в своем ответе. Также вы ответили не на все вопросы, которые я задал в своем комментарии выше.

Ответ №2:

Если вы используете Bundler, вам следует добавить

 gem "mysql2"
  

на ваш Gemfile , затем запустите bundle install

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

1. На самом деле это ничего не исправило. Сейчас я пробую пример Zabba 🙂 Сообщит, что произойдет 🙂

Ответ №3:

В Rails > = 3.2.0 вы увидите это, если используете более старую версию bundler. Обновите bundler до >= 1.1.1:

 gem update bundler
  

Как только вы это сделаете, обновите свои драгоценные камни:

 bundle install