2012-03-19 59 views
4

我正在Windows 7(64位)机器上运行此操作。我使用一键式安装程序安装了RoR。我已经更新了我的database.yml文件中使用mysql2:Rails mysql2错误:“rake aborted!请安装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:create (请参阅完整跟踪,通过运行带有--trace的任务)“

bundle show mysql2 

发出此错误:“在当前包中找不到gem'mysql2'。”

我错过了什么让mysql2去?

+1

你运行在'生产'环境中这么做? – jnevelson 2012-03-19 18:43:09

回答

1

运行bundle installrake db:create(后gem install mysql2

+0

我编辑了我的问题,但我忘了提及我也这样做了。即使在执行“bundle install”之后,它仍然不起作用 - mysql2未在“bundle install”命令的输出中列出。 – alexD 2012-03-19 18:32:29

+1

嗯,仔细检查并重新启动。另外,由于您在所有环境中都使用mysql,因此尝试删除:group =>:production param如何? – 2012-03-19 18:36:10

+0

我认为有:group =>:生产参数是导致问题的原因。 – alexD 2012-03-19 19:44:08

2

转到您的应用程序

  1. 开放的Gemfile
  2. 添加此行

    宝石 'mysql2'

+0

结合这与上述答案,你有它。 – 2013-03-25 20:00:22

1

类似的问题是后

  • 创作每https://github.com/brianmario/mysql2/issues/486 libmysql.lib文件的解决对我来说,并用它来安装/编译天然宝石(LIB在用于目录居住“--with-mysql的-LIB =” $的MySQL安装mysql和mysql2 gems(只是安装了mysql2 gem,虽然database.yml有“adapter = mysql2”),但是安装的却是完全相同的错误, “无处不在)。

所有mysql2后出现了后命令“包安装”宝石列表,我是能够运行“耙分贝:创建”成功,开始在x64红宝石2.0管理平台64窗户使用x64 MySQL中使用WEBrick,去在某些生产服务器上进行配置。

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

更新

我必须精确,除了安装MySQL和mysql2我在管理平台的应用程序顶部创建的文件Gemfile.local目录,这可能使捆绑器的伎俩。 因此,我建议,以取代最后一步:

  • 安装mysql2宝石
  • 建立在 您列出当地的宝石被列入到您的应用程序捆绑顶级目录中的文件Gemfile.local。

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

我离开这两个解决方案,如果我错了,诀窍是由mysql gem与mysql2一起安装,不幸的是我无法从头开始删除/重新安装所有的测试,当然我会更新,能够这样做,希望这一切都会为某人节省一些时间。

我Gemfile.local文件的内容是:

--- 8 < ---

宝石 “mysql2”, “〜> 0.3.11”

宝石 “EventMachine的”

宝石 “瘦”

--- 8 < ---