【问题标题】:ActiveRecord.... activerecord-mysql-adapterActiveRecord.... activerecord-mysql-adapter
【发布时间】:2011-12-04 09:53:49
【问题描述】:

这让我发疯了。

我正在尝试使用 ActiveRecord 创建一个简单的初学者应用程序来执行简单的数据库任务。我没有使用导轨。

我不断收到错误:

RuntimeError: Please install the mysql adapter: `gem install activerecord-mysql-adapter` (Could not find mysql (~> 2.8.1) amongst [actionmailer-3.1.3, actionpack-3.1.3, activemodel-3.1.3, activerecord-3.1.3, activerecord-sqlserver-adapter-3.1.4, activeresource-3.1.3, activesupport-3.1.3, ansi-1.4.1, arel-2.2.1, bigdecimal-1.1.0, builder-3.0.0, bundler-1.0.21, capistrano-2.9.0, coffee-rails-3.1.1, coffee-script-2.2.0, coffee-script-source-1.1.3, daemons-1.1.4, erubis-2.7.0, eventmachine-0.12.10, execjs-1.2.9, highline-1.6.8, hike-1.2.1, hpricot-0.8.5, i18n-0.6.0, io-console-0.3, jquery-rails-1.0.19, json-1.6.3, mail-2.3.0, mime-types-1.17.2, minitest-2.5.1, multi_json-1.0.4, net-scp-1.0.4, net-sftp-2.0.5, net-ssh-2.2.1, net-ssh-gateway-1.1.0, nokogiri-1.5.0, polyglot-0.3.3, rack-1.3.5, rack-cache-1.1, rack-mount-0.8.3, rack-protection-1.1.4, rack-ssl-1.3.2, rack-test-0.6.1, rails-3.1.3, railties-3.1.3, rake-0.9.2.2, rdoc-3.11, rockhands-0.0.6, sass-3.1.11, sass-rails-3.1.5, shotgun-0.9, sinatra-1.3.1, sprockets-2.0.3, sqlite3-1.3.4, thin-1.3.1, thor-0.14.6, tilt-1.3.3, treetop-1.4.10, turn-0.8.3, tzinfo-0.3.31, uglifier-1.1.0])

这种宝石显然不存在于 ruby​​gems 上,否则这很容易......

我应该怎么做呢?

这是重要的部分

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql',
  :host     => 'localhost',
  :database => 'test',
  :username => 'root',
  :password => 'password'
)

我可以看到我在哈希中更改的 :adapter 是它插入到错误“gem install activerecord-yousuck-adapter”中的内容

我已经阅读了几乎所有我能找到的 google 指南......在我的智慧尽头。我认为这至少会更容易一些......我花了几个小时来修复 gem 错误。事实上,我还没有编写任何实际的 ruby​​ 代码。多么令人沮丧。

【问题讨论】:

标签: ruby-on-rails ruby activerecord


【解决方案1】:

不确定这是否是您的问题,但请尝试使用adapter: mysql2 驱动程序。无论如何,这是推荐的,因为它比标准的 mysql 快得多。

你还遇到同样的问题吗?

【讨论】:

  • 我下载了那个,因为我在其他地方读到过,但它只是说找不到 activerecord-mysql2-adapter。我不明白它是怎么做到的,因为它被称为“mysql2”。我可以将适配器的 gem 名称指定为 activerecord 吗?
  • 我想我不明白你的问题。您的意思是使用与识别宝石的名称不同的名称吗?
  • 好吧,我将适配器更改为“mysql2”,现在错误是:RuntimeError: Please install the mysql2 adapter: gem install activerecord-mysql2-adapter... 那么我如何告诉 activerecord 查看名为'mysql2' 而不是 activerecord-mysql2-adapter
  • gem 安装了吗?你应该可以做到gem install mysql2
  • 最后,这修复了它:sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
【解决方案2】:

在解决这个问题数小时后,Tallboy 的回答在 OS X 上对我有用:

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

不幸的是,他的答案隐藏在上面的其中一个 cmets 中;您必须单击链接以展开评论。我收到错误消息“Mysql:Class 的未定义方法 'init'”

【讨论】:

    【解决方案3】:
    1. 我发出了 bundle install 命令,但没有解决问题

    2. 我发现 gemfile 位于 c:\Sites\\Gemfile

    3. 通过在记事本++中编辑文件,将 gem 'mysql' 添加到文件中

    4. 然后使用bundle show mysql

    5. 检查捆绑包中是否有Mysql
    6. 之后,当我发出 rake db:create 时,我得到指定的文件找不到错误,它指的是 libmysql.dll

    7. 您可以在 mysql 安装中找到相同的内容,也可以从链接下载 http://www.vertstudios.com/blog/libmysqldll-32-bit-download/

    8. 将该文件复制到 Ruby 目录的 bin 文件夹中。在我的情况下,我使用的是 ruby​​installer,所以它是 C:\RailsInstaller\Ruby1.9.3\bin

    瞧。完成了。

    ^请注意,下载链接可能会导致库版本不正确。在这种情况下,最好在安装 mysql(2) gem 后立即按照消息中给出的链接获取正确的库版本,否则它仍然无法工作。

    【讨论】:

      【解决方案4】:

      我们遇到了同样的问题(因为我们从 jruby 切换到 ruby​​)

      已解决:

      • 适配器:mysql2(在 database.yml 中)
      • gem 'mysql2'(在 gemfile 中)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多