我已经阅读了许多关于mysql2的帖子,但是尽管gem似乎安装得很好,但在运行任何rake db任务或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)
我还遗漏了什么吗?谢谢你。
这很尴尬,但是对于其他可能有同样问题的人:
确保您的数据库。yml文件有所有正确的拼写,没有调换的l或q:
# Correct
development:
adapter: mysql2
而不是:
# Incorrect
development:
adapter: myslq2
注意OP的最后一行抱怨缺少myslq2适配器。也许有人可以创建一个名为myslq2的克隆项目,以防万一:)
您应该将此添加到Gemfile
:
gem 'mysql2','0.2.7'
Then bundle install
.
还请注意mysql2 v0.2。x用于Rails v3.0。X或更低版本,mysqll2 v0.3。x用于Rails 3.1。X或更高版本(mysql l2 v0.3)x不再附带activerecord适配器,因为它现在是Rails 3.1的一部分)
mMysql2
可能是mysql 0.3.2的拼写错误?
我找到了这个解决方案,它对我很有效:
由于某些原因,安装程序指向错误的位置。将以下内容添加到~/。配置文件或~/。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/
我通过改变数据库中的'mysql'修复了这个问题。
'mysql' gem是在ruby 1.9之前使用的(在我进入ruby之前),我想。因此,ruby 1.8 rails项目也可以通过记住更改数据库来修复。
我有这个问题,这是由于适配器:mysql在database.yml
。是的,它确实需要adapter: mysql2
。这样做很好,是的,我正在从sqlite3切换。