mysql2 gem安装得很好,但在运行“rake db:migrate”时仍然得到“请安装myslq2适配器...”

时间:2011-05-06 16:11:33

标签: ruby-on-rails mysql2

我已经阅读了很多关于mysql2的帖子,但是虽然gem似乎安装得很好,但在运行任何rake db tasks或rails命令时仍然会出错。在我的Gemfile中:

source 'http://rubygems.org'

gem 'rails', '3.0.7'
gem 'mysql2'

在我的远程服务器上运行以下内容:

$ bundle install
...
Using mysql2 (0.2.7)
...
Using rails (3.0.7)
...
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

$ rake db:schema:load
(in ...)
rake aborted!
Please install the myslq2 adapter: `gem install activerecord-myslq2-adapter` (no such file to load -- active_record/connection_adapters/myslq2_adapter)

$ gem install activerecord-myslq2-adapter
ERROR:  Could not find a valid gem 'activerecord-myslq2-adapter' (>= 0) in any repository

$ gem install mysql2
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.2
1 gem installed
Installing ri documentation for mysql2-0.3.2...
Enclosing class/module 'mMysql2' for class Result not known
Installing RDoc documentation for mysql2-0.3.2...
Enclosing class/module 'mMysql2' for class Result not known

$ rake db:schema:load
(in ...)
rake aborted!
Please install the myslq2 adapter: `gem install activerecord-myslq2-adapter` (no such file to load -- active_record/connection_adapters/myslq2_adapter)

我还缺少其他东西吗?谢谢。

5 个答案:

答案 0 :(得分:8)

这令人尴尬,但对于可能遇到同样问题的其他人来说:

确保您的database.yml文件具有所有正确的拼写且没有转置的Ls或Qs:

# Correct
development:
  adapter: mysql2

而不是:

# Incorrect
development:
  adapter: myslq2

请注意我的OP上的最后一行抱怨缺少 myslq2 适配器。也许有人可以创建一个名为myslq2的项目的克隆,以防万一:)

答案 1 :(得分:5)

您应该将其添加到Gemfile

gem 'mysql2','0.2.7'

然后bundle install

另请注意,mysql2 v0.2.x适用于Rails v3.0.x或更低版本,而mysql2 v0.3.x适用于Rails 3.1.x或更高版本(mysql2 v0.3.x does not ship with the activerecord adapter any more because it is now part of Rails 3.1)< / p>

mMysql2可能是mysql 0.3.2中的拼写错误?

答案 2 :(得分:1)

我找到了这个解决方案,它对我有用:

  

由于某种原因,安装指向错误的地方。将以下内容添加到〜/ .profile或〜/ .bash_profile应该可以解决问题(假设这是MySQL安装所在的位置):

     

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

     

打开一个新的终端,你应该好好去。

来源:http://alexbraunstein.com/2011/08/12/library-loaded-libmysqlclient-18-dylib/

答案 3 :(得分:1)

我通过将database.yml文件中的'mysql'更改为'mysql2'来修复此问题。

我认为,'rubql'宝石在ruby 1.9之前使用过(在我进入ruby之前)。所以ruby 1.8 rails项目也可以通过记住将database.yml'mysql'更改为'mysql2'来修复,而不仅仅是Gemfile。

答案 4 :(得分:0)

我遇到了这个问题,这是由database.yml中的适配器:mysql引起的。是的,确实需要adapter: mysql2。一切都很好,是的,我正在转离sqlite3。