我已经阅读了很多关于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)
我还缺少其他东西吗?谢谢。
答案 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。