Rails mysql2错误:“rake aborted!请安装mysql2适配器......”

时间:2012-03-19 18:20:25

标签: mysql ruby-on-rails ruby-on-rails-3 rake bundler

我在Windows 7(64位)计算机上运行它。我使用一键安装程序安装了RoR。我已经更新了我的database.yml文件以使用mysql2:

development:
  adapter: mysql2
  encoding: utf8
  database: blog_development
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock
test:
  adapter: mysql2
  encoding: utf8
  database: blog_test
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  database: blog_production
  pool: 5
  username: root
  password: 
  socket: /tmp/mysql.sock

我将此行添加到我的Gemfile中(根据教程视频):

gem 'mysql2', :group => :production

然后:

gem install mysql2

成功。然后:

bundle install

哪个也成功,但没有列出mysql2。

然后:

rake db:create

给出了这个错误:

“耙子流产! 请安装mysql2适配器:gem install activerecord-mysql2-adapter(我的 sql2不是捆绑包的一部分。将它添加到Gemfile。) 任务:TOP => DB:创建 (通过使用--trace运行任务查看完整跟踪)“

bundle show mysql2

给出了这个错误:“无法在当前包中找到gem'mysql2'。”

我错过了什么让mysql2运行?

3 个答案:

答案 0 :(得分:2)

转到您的应用

  1. 打开Gemfile
  2. 添加此行

    gem'mysql2'

答案 1 :(得分:1)

bundle install之前(rake db:create之后)

运行gem install mysql2

答案 2 :(得分:1)

之后,我解决了类似的问题
  • https://github.com/brianmario/mysql2/issues/486创建libmysql.lib文件并使用它来安装/编译本机gems(lib驻留在用于&#34的目录中; - with-mysql-lib =" $ mysql top_path / lib"" gem installation)
  • 将libmysql.dll放入ruby_top bin文件夹
  • 同时安装了mysql和mysql2 gems(安装了mysql2 gem后得到了完全相同的错误,尽管database.yml有" adapter = mysql2"无处不在)。

在命令" bundle install"之后,mysql2出现在gems列表中之后,我能够运行" rake db:create"成功,在webrick上使用x64 mysql在x64 ruby​​ 2.0上启动了redmine x64 windows,继续在某些生产服务器上进行配置。

===============

更新

我必须确切地说,除了安装mysql和mysql2之外,我在redmine应用程序顶级目录中创建了文件Gemfile.local,这可能是使用bundler进行的。 所以我建议用以下代码替换最后一步:

  • 安装mysql2 gem
  • 在应用程序顶级目录中创建文件Gemfile.local 列出要包含在捆绑包中的本地宝石。

我看到另一个建议将mysql2 gem添加到Gemfile的答案,但是对我来说,mysql2已经包含在Gemfile中但是在添加到Gemfile.local后才出现在bundler输出中。

我离开这两个解决方案如果我错了,诀窍是由mysql gem和mysql2一起安装完成的,不幸的是我现在无法从头开始删除/重新安装以确保测试,我会更新当我能够这样做时,希望这一切都能节省一些时间。

我的Gemfile.local文件内容是:

--- 8< ---

gem" mysql2","〜> 0.3.11"

gem" eventmachine"

gem" thin"

--- 8< ---