4

我在这里阅读了很多关于 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)

还有什么我想念的吗?谢谢你。

4

5 回答 5

9

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

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

# Correct
development:
  adapter: mysql2

并不是:

# Incorrect
development:
  adapter: myslq2

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

于 2011-05-09T19:15:44.483 回答
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 不附带不再是 activerecord 适配器,因为它现在是 Rails 3.1 的一部分

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

于 2011-05-06T16:16:23.230 回答
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/

于 2012-09-07T14:31:00.780 回答
1

我通过将我的 database.yml 文件中的“mysql”更改为“mysql2”来解决这个问题。

'mysql' gem 是在 ruby​​ 1.9 之前使用的(在我进入 ruby​​ 之前),我想。因此,ruby 1.8 rails 项目可能会通过记住将 database.yml 'mysql's 更改为 'mysql2' 而不仅仅是 Gemfile 来修复。

于 2012-12-13T00:30:28.317 回答
0

我遇到了这个问题,这是由于在database.yml. 是的,它确实需要adapter: mysql2。一切都很好,是的,我正在离开 sqlite3。

于 2012-05-20T22:35:55.010 回答