Подтвердить что ты не робот

Установите mysql-адаптер gem install activerecord-mysql-adapter '

У меня возникли проблемы с поиском решения этой проблемы. Я получаю сообщение об ошибке:

Please install the mysql adapter: 'gem install activerecord-mysql-adapter'

 /Users/ Andy/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem': Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.) (LoadError)
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/mysql_adapter.rb:5:in `<top (required)>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:48:in `resolve_hash_connection'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:127:in `establish_connection'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/railtie.rb:76:in `block (2 levels) in <class:Railtie>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:36:in `instance_eval'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/lazy_load_hooks.rb:26:in `on_load'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/railtie.rb:74:in `block in <class:Railtie>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `instance_exec'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `run'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:55:in `block in run_initializers'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `each'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `run_initializers'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/application.rb:136:in `initialize!'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `method_missing'
    from /Users/ Andy /config/environment.rb:5:in `<top (required)>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
    from /Users/ Andy /config.ru:4:in `block in <main>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
    from /Users/ Andy /config.ru:1:in `new'
    from /Users/ Andy /config.ru:1:in `<main>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands/server.rb:46:in `app'
    from /Users/ Andy/mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands/server.rb:70:in `start'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:55:in `block in <top (required)>'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
    from /Users/ Andy /mysql2/ruby/1.9.1/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>' ```

Вот вывод gem env.

  RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.15
  - RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.2.0]
  - INSTALLATION DIRECTORY: /Users/ Andy/.rvm/gems/ruby-1.9.2-p290
  - RUBY EXECUTABLE: /Users/ Andy/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/ Andy/.rvm/gems/ruby-1.9.2-p290/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-11
  - GEM PATHS:
     - /Users/ Andy/.rvm/gems/ruby-1.9.2-p290
     - /Users/ Andy/.rvm/gems/[email protected]
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Если я могу предоставить дополнительную информацию, пожалуйста, дайте мне знать.

Спасибо, -Andy


P.s - Мой database.yaml уже имеет mysql2.

4b9b3361

Ответ 1

Проблема заключается в вашем файле config/database.yml

У вас должна быть строка, указывающая, что адаптер - это mysql2 (а не mysql)

adapter: mysql2

Вместо

adapter: mysql

Ответ 2

Что помогло мне, было указать адаптер mysql2 вместо mysql (обратите внимание на цифру!) в config/database.yml.

Ответ 3

Я бы никогда не поверил бы этому, но удаление моего файла database.yml и повторное создание его на самом деле решили проблему для меня тоже. Спасибо Тайлеру. Я потратил несколько часов на установку и удаление различных версий gems mysql, mysql2, activerecord-mysql-adapter и т.д. В конце мой gemfile имеет

gem 'mysql2', "~>0.3.11"

и мой файл database.yml имеет

adapter: mysql2

Я на OSX 10.8, рельсы 3.2.8 и ruby ​​1.9.3.

Кстати, у меня возникли те же проблемы с адаптером mysql2 на моей машине с Windows 7. Деинсталляция и даже удаление каталога для жука activerecord-mysql-адаптера также были важны.

Ответ 4

1) Вам необходимо обновить файл config/database.yml и изменить:

adapter: mysql

в

adapter: mysql2

2) Вам нужно обновить Gemfile и явно добавить там зависимость activerecord-mysql2-adapter:

gem 'mysql2'
gem 'activerecord-mysql2-adapter'

Ответ 5

Вы хотите установить mysql2 gem.

Действительно, вы должны добавить его в свой Gemfile:

gem "mysql2"

И затем установите свои драгоценные камни со связкой:

bundle install

Ответ 6

Возможно, это было поздно, но установка пакета была установлена ​​ 0.4.0. Поэтому я попытался отредактировать файл gem и заменить mysql2 на

gem 'mysql2', "~>0.3.11"

а затем

bundle install

в терминале (это установит mysql2 0.3.11, а не последнюю версию). Я думаю, что у активной записи проблемы с последней версией. Я надеюсь, что это поможет

Ответ 7

У меня была та же проблема, что и OP на OSX Lion после обновления до Rails 3.2. Удаление всех драгоценных камней, установка пакета и т.д. Не сработала. Gemfile и database.yml правильно указали mysql2.

В конце концов, я удалил и воссоздал свой database.yml, и все работает снова. Вероятно, это был опечаток или скрытый символ в файле.

Ответ 8

Шаг 1. gem 'mysql2', "~>0.3.11" вместо gem 'mysql2' в Gemfile

Шаг 2. размещение mysqllib.dll (доступно при установке mysql C:\wamp\bin\mysql\mysql5.5.24\lib) в папке C:\ruby2.0.0\bin разрешило проблему rake db:migrate и успешно связало мои рельсы с mysql (database.yml содержит mysql2)

Я запускаю Windows 7, 64bit, mysql 64bit, ruby ​​2.0.0 [x64-mingw32]

Спасибо всем за ваши материалы.

Ответ 9

Возможно, вы изменили адаптер на mysql2 только для определенной среды, но не передаете среду команде rake.

например. Я только изменил mysql на mysql2 в рабочей среде, но работал

rake generate_secret_token

когда я изменил его на следующее:

rake generate_secret_token RAILS_ENV=production

Ответ 10

Если ничего не помогает (у вас есть mysql2 как адаптер в database.yml), и вы используете RVM для управления вашими рубиновыми версиями, вот простейшее решение:

Попробуйте удалить все свои старые гемзеты (включая global), установите новую рубиновую версию и пакет снова. Я мог бы решить проблему таким образом.

Ответ 11

вы упомянули, что ваш файл database.yaml уже имеет mysql2.

Его стоит проверить, установлен ли activerecord-mysql2-adapter. (Примечание -mysql2-)

Ответ 12

Я бы сказал, что измените прокомментированную информацию сверху в database.yml на

# 
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html

second: добавьте "gem" mysql2 '"(что всегда находится в двойных кавычках) в gemfile.

сохранить все, установить пакет. Надеюсь, что это поможет.

или это может быть опечатка.

Ответ 13

Я столкнулся с той же проблемой и получаю ту же ошибку при запуске команды

gem install activerecord-mysql2-adapter

вам нужно установить libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

Это работает для меня

Ответ 14

В моем случае, когда я также получил эту ошибку:

рейк прерван! Пожалуйста, установите адаптер mysql: gem install activerecord-mysql-adapter (mysql не входит в комплект поставки. Добавьте его в Gemfile.)

После того, как я искал Google и пробовал много способов, это не сработало. Наконец, ответ

  • Перейдите в корень вашего приложения, запустите open gemfile
  • Добавьте строку gem 'mysql2', '< 0.3.7' непосредственно под линией драгоценных камней для рельсов.

Ответ 15

Я просто добавил следующую строку в свой Gemfile, и она сработала:

gem "mysql"

До:

source 'https://rubygems.org'

gem "rails", "3.2.16"
gem "jquery-rails", "~> 2.0.2"
gem "coderay", "~> 1.1.0"
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
gem "builder", "3.0.0"
...

После:

source 'https://rubygems.org'

gem "mysql"
gem "rails", "3.2.16"
gem "jquery-rails", "~> 2.0.2"
gem "coderay", "~> 1.1.0"
gem "fastercsv", "~> 1.5.0", :platforms => [:mri_18, :mingw_18, :jruby]
gem "builder", "3.0.0"
...