簡體   English   中英

請安裝mysql適配器'gem install activerecord-mysql-adapter'

[英]Please install mysql adapter '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/

如果我能提供更多信息,請告訴我。

謝謝,-Andy


Ps - 我的database.yaml已經有了mysql2

問題出在您的文件config / database.yml上

你應該有一行指定適配器是mysql2(而不是mysql)

adapter: mysql2

代替

adapter: mysql

對我有幫助的是在config / database.yml中指定適配器mysql2而不是mysql(注意數字!)。

1)您需要更新config/database.yml文件並更改:

adapter: mysql

adapter: mysql2

2)您需要更新您的Gemfile並在Gemfile顯式添加activerecord-mysql2-adapter依賴項:

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

我永遠不會相信它,但刪除我的database.yml文件並重新創建它實際上也解決了我的問題。 謝謝泰勒。 我花了幾個小時安裝和卸載不同版本的寶石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的目錄似乎也很關鍵。

這可能會遲到但是bundle install正在安裝0.4.0所以我試着編輯gem文件並用mysql2代替

gem 'mysql2', "~>0.3.11"

然后

bundle install

在終端(這將安裝mysql2 0.3.11而不是最后一個版本)我認為活動記錄在使用上一版本時遇到問題。 好吧,我希望它有所幫助

你想安裝mysql2 gem

真的,你應該把它添加到你的Gemfile

gem "mysql2"

然后用bundler安裝你的寶石:

bundle install

步驟1. gem 'mysql2', "~>0.3.11"而不是gem 'mysql2', "~>0.3.11"gem 'mysql2'

步驟2.mysqllib.dll (在mysql安裝C:\\wamp\\bin\\mysql\\mysql5.5.24\\lib )放在C:\\ruby2.0.0\\bin文件夾中解決了rake db:migrate問題並成功連接了我的rails用mysql( database.yml包含mysql2)

我正在運行Windows 7,64bit,mysql 64bit,ruby 2.0.0 [x64-mingw32]

謝謝大家的投入。

在升級到Rails 3.2之后,我遇到了與OSX Lion上的OP相同的問題。 刪除所有寶石,捆綁安裝等都不起作用。 Gemfile和database.yml正確指定了mysql2。

最后,我刪除並重新創建了我的database.yml,一切都恢復了。 它可能是文件中的拼寫錯誤或隱藏字符。

如果沒有任何幫助(你的database.ymlmysql2作為適配器)並且你使用RVM來管理你的ruby版本,這是最簡單的解決方案:

嘗試刪除所有舊的gemsets(包括global ),安裝一個新的ruby版本並再次捆綁。 我可以這樣解決問題。

您可能已將適配器更改為僅針對特定環境的mysql2,但未將環境傳遞給rake命令。

例如,我只在生產環境中將mysql更改為mysql2但正在運行

rake generate_secret_token

當我把它改成以下時它起作用了:

rake generate_secret_token RAILS_ENV=production

你提到你的database.yaml文件已經有了mysql2

如果您安裝了activerecord-mysql2-adapter則值得檢查。 (注意-mysql2-

我會說將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

第二步:將“gem'mysql2'”(雙引號內的內容)添加到gemfile中。

保存一切,做捆綁安裝。 希望有所幫助。

或者它只是一個錯字。

我遇到同樣的問題,並在運行命令時得到相同的錯誤

gem install activerecord-mysql2-adapter

你需要安裝libmysqlclient-dev

sudo apt-get install libmysqlclient-dev

這個對我有用

在我的情況下,當我也遇到這個錯誤:

耙子流產了! 請安裝mysql適配器: gem install activerecord-mysql-adapter (mysql不是bundle的一部分。將它添加到Gemfile。)

在我搜索谷歌並嘗試了很多方法后,它沒有用。 最后,答案是

  • 導航到應用程序的根目錄,運行open gemfile
  • gem 'mysql2', '< 0.3.7'的寶石線正下方添加線gem 'mysql2', '< 0.3.7'

對於舊的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. 在終端中,鍵入command:csrutil disable

  5. 重啟你的電腦

最后,在重新啟動后,在終端中輸入以下命令:

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

我剛剛將以下行添加到我的Gemfile中它是否有效:

寶石“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"
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM