Rails ошибка mysql2: "грабли прерваны! Пожалуйста, установите адаптер mysql2 ..." - PullRequest
4 голосов
/ 19 марта 2012

Я запускаю это на Windows 7 (64-битной) машине. Я установил RoR с помощью установщика в один клик. Я обновил свой файл database.yml для использования mysql2:

development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock
test:
  adapter: mysql2
  encoding: utf8
  database: blog_test
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  database: blog_production
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

Я добавил эту строку в свой Gemfile (согласно обучающему видео):

gem 'mysql2', :group => :production

Тогда:

gem install mysql2

, что успешно. Тогда:

bundle install

Что также успешно, но mysql2 не указан.

Тогда:

rake db:create

, который выдает эту ошибку:

"рейк прерван! Пожалуйста, установите адаптер mysql2: gem install activerecord-mysql2-adapter (мой sql2 не является частью пакета. Добавьте его в Gemfile.) Задачи: TOP => DB: создать (Смотрите полную трассировку, запустив задачу с --trace) bundle show mysql2 Выдает эту ошибку: «Не удалось найти гем« mysql2 »в текущем комплекте».

Чего мне не хватает, чтобы запустить mysql2?

Ответы [ 3 ]

2 голосов
/ 20 января 2013

Перейти в ваше приложение

  1. Открыть Gemfile
  2. Добавить эту строку

    драгоценный камень 'mysql2'

1 голос
/ 22 сентября 2014

Подобная проблема была решена для меня после

  • создание файла libmysql.lib для https://github.com/brianmario/mysql2/issues/486 и использование его для установки / компиляции собственных гемов (lib находился в каталоге, используемом для "--with-mysql-lib =" $ mysql top_path / lib "" gem установка)
  • помещение libmysql.dll в папку bin ruby_top
  • установка гемов mysql и mysql2 (получалась точно такая же ошибка при установке только самоцвета mysql2, хотя для database.yml везде был "adapter = mysql2").

После того, как mysql2 появился в списке драгоценных камней после команды "bundle install", я смог успешно запустить "rake db: create", запустил redmine для x64 windows на x64 ruby ​​2.0 с x64 mysql на webrick, продолжая настройку на каком-то производственном сервере.

===============

Обновление

Я должен уточнить, что помимо установки обоих mysql и mysql2 я создал файл Gemfile.local в верхнем каталоге приложения redmine, который, вероятно, добился цели с помощью bundler. Поэтому я бы порекомендовал заменить последний шаг на:

  • установка mysql2 gem
  • создание файла Gemfile.local в верхнем каталоге приложения, где Вы перечисляете местные драгоценные камни, которые будут включены в ваш пакет.

Я видел другой ответ, который рекомендует добавить gem mysql2 в Gemfile, но для меня mysql2 уже был включен в Gemfile, но появился в выходных данных пакета после добавления только в Gemfile.local.

Я оставляю оба решения, если я ошибаюсь, и уловка была сделана с помощью mysql gem, установленного вместе с mysql2, к сожалению, я не могу сейчас удалить / переустановить все с нуля, чтобы проверить это наверняка, я обновлю, когда я надеюсь, все это сэкономит кому-то время.

Содержимое файла My Gemfile.local:

--- 8 <--- </p>

gem "mysql2", "~> 0.3.11"

драгоценный камень "eventmachine"

драгоценный камень "худой"

--- 8 <--- </p>

1 голос
/ 19 марта 2012

Выполнить bundle install до rake db:create (после gem install mysql2)

...