web-dev-qa-db-ja.com

mysqlアダプタ 'gem install activerecord-mysql-adapter'をインストールしてください

この問題の解決策を見つけるのに苦労しています。エラーが発生しています:

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

 /Users/ Andy/.rvm/gems/Ruby-1.9.2-p290@global/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/Ruby-1.9.2-p290@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

さらに情報を提供できる場合はお知らせください。

ありがとう、アンディ


P.s-マイdatabase.yamlはすでにmysql2

40
Andy

問題はconfig/database.ymlファイルにあります

アダプターがmysqlではなく(mysqlではない)ことを指定する行が必要です。

adapter: mysql2

の代わりに

adapter: mysql
110
rorra

Config/database.ymlでmysql(数字に注意してください!)の代わりにアダプタmysql2を指定することで助けられました。

17
rpuch

1)config/database.ymlファイルを更新して変更する必要があります:

adapter: mysql

adapter: mysql2

2)Gemfileを更新し、activerecord-mysql2-adapter依存関係を明示的に追加する必要があります。

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

私はそれを信じていなかっただろうが、私のdatabase.ymlファイルを削除して再作成することで、実際に私にとっても問題は解決した。ありがとうタイラー。さまざまなバージョンのgem mysql、mysql2、activerecord-mysql-adapterなどのインストールとアンインストールに何時間も費やしました。結局、私のgemfileは

gem 'mysql2', "~>0.3.11"

私のdatabase.ymlファイルには

adapter: mysql2

OSX 10.8、Rails 3.2.8、およびRuby 1.9.3。

ちなみに、Windows 7マシンのmysql2アダプターでも同じ問題が発生しました。 activerecord-mysql-adapter gemのディレクトリをアンインストールし、削除することも重要であると思われました。

9
Aaron Henderson

これは遅れるかもしれませんが、バンドルのインストールは.4.をインストールしていたので、gemファイルを編集して、mysql2

gem 'mysql2', "~>0.3.11"

その後

bundle install

ターミナルで(これによりmysql2 0.3.11がインストールされ、最後のバージョンではありません)アクティブレコードには最後のバージョンでの作業に問題があると思います。まあそれが役立つことを願っています

6
user2822413

mysql2 gem

本当に、あなたはおそらくあなたのGemfileにそれを追加すべきです:

gem "mysql2"

そして、Bundlerでgemをインストールします。

bundle install
6
bhamby

ステップ1。gem 'mysql2', "~>0.3.11" の代わりに gem 'mysql2' Gemfileで

ステップ2。 puting mysqllib.dll(mysqlインストールで利用可能C:\wamp\bin\mysql\mysql5.5.24\lib ) の中に C:\Ruby2.0.0\binフォルダはレーキを解決しましたdb:migrate問題あり、my Railsとmysql(database.ymlにはmysql2が含まれます)

Windows 7、64ビット、mysql 64ビットを実行しています、Ruby 2.0.0 [x64-mingw32]

ご意見ありがとうございます。

4
parag

何も解決しない場合(mysql2あなたのdatabase.yml)そして、あなたは[〜#〜] rvm [〜#〜]を使用してRubyバージョン、これが最も簡単なソリューションです:

removeすべての古いgemsets(globalを含む)を試して、新しいRuby=バージョンとバンドルを再度インストールします。この方法で問題を解決できます。 。

3
ijon

Rails 3.2。すべてのgemの削除、バンドルのインストールなどが機能しませんでした。Gemfileとdatabase.ymlがmysql2を正しく指定していました。

最後に、database.ymlを削除して再作成しましたが、すべてが再び機能します。おそらくファイルのタイプミスまたは隠し文字でした。

3
Tyler Broadbent

特定の環境でのみアダプタをmysql2に変更したが、環境をrakeコマンドに渡していない可能性があります。

例えば。実稼働環境でmysqlをmysql2に変更しただけですが、実行されていました

rake generate_secret_token

私がそれを次のように変更すると、うまくいきました:

rake generate_secret_token Rails_ENV=production
2
Medhat Gayed

database.yamlファイルには既にmysql2が含まれていると述べました。

activerecord-mysql2-adapterがインストールされているかどうかを確認する価値があります。 (注-mysql2-

2
dotnetcoder

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

2番目:gemfileに「gem 'mysql2'」(二重引用符の内側にあるもの)を追加します。

すべてを保存し、バンドルインストールを実行します。お役に立てば幸いです。

または、単にタイプミスである可能性があります。

1
Aman Khatri

コマンドを実行すると同じ問題が発生し、同じエラーが発生します

gem install activerecord-mysql2-adapter

libmysqlclient-devをインストールする必要があります

Sudo apt-get install libmysqlclient-dev

わたしにはできる

1
Haris Khalique

私の場合、私もこのエラーを受け取ったとき:

レーキは中止されました! mysqlアダプターをインストールしてください:gem install activerecord-mysql-adapter(mysqlはバンドルの一部ではありません。Gemfileに追加してください。)

Googleを検索してさまざまな方法を試した後、うまくいきませんでした。最後に、答えは

  • アプリのルートに移動し、open gemfileを実行します
  • Railsのgem行のすぐ下にgem 'mysql2', '< 0.3.7'行を追加します。
0
biolinh

古いRails 2.3.18 Ruby 1.8.7アプリを新しいMacBook(High Sierra-10.13.6)に「移行」した) (POWを使用して)アプリを実行し、スクリプト/コンソールを使用するには、SIPを無効にし、/ urs/lib /ディレクトリにファイルへのリンクを作成する必要がありました。移行アシスタントはできませんでした。 SIPのためにリンクを作成します。

無効にするにはSIP-システム整合性保護

  1. システムの起動中にCommandキーとRキーを押して、通常どおりMac OSリカバリモードで起動します。

  2. 通常どおり言語を選択します(該当する場合)

  3. 「MacOS Utilities」画面で、画面の上部から「Utilities」メニューをプルダウンします。

  4. ターミナルで、次のコマンドを入力します:csrutil disable

  5. コンピュータを再起動してください

最後に、再起動後、ターミナルで次のコマンドを入力します。

Sudo ln /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

0
GeezerGeek