[RoR小学生] - 艰难搞定rails 4.0 下mysql2驱动

深深感到年纪大了啊,搞个rails 4.0下的mysql2驱动搞了我快4个小时....也深深感到rails这个东西其实不是那么友善,如果想玩还蛮简单,如果用来做事情,我觉得恐怕我的战斗经历要写一大箩筐了....

先说一下我的开发环境:
  • Windows 7 64bit Enterprise
  • Ruby 2.0.0
  • Rails 4.0.0
  • MySQL 5.5
在rails 1.x时代把玩过一段时间,依稀记得那个时候链接个mysql不是那么难....只到昨天晚上我彻底的被打败了....首先不理解mysql和mysql2这2个驱动的区别,不过谷歌一顿之后得到了结论,rails 3.0之后默认使用mysql2驱动;mysql2驱动有着比mysql让人吃惊的性能提高....好吧,就用mysql2吧。
在度娘上(抱歉,GFW限制,只有工作时间可以谷歌)找了几篇排名靠前的帖子,一顿折腾....结果无解....,主要错误有如下几个,
 

这个错误发生在成功安装了mysql2-0.3.11-x86-mingw32.gem之后。度娘很多结果说要用到0.2.x的版本就没问题,也有说用0.3.11可行的....但是时代是进步的,总不能停留在0.2.x版本吧,我不想去尝试安装0.2.x,所以想解决掉这个0.3.11的问题。根据度娘出来的某篇帖子里面说是因为在安装的mysql2-0.3.11的lib目录下没有mysql/2.0/mysql2.so导致的,用gem默认安装的只有1.8和1.9...我猜想是支持Ruby 1.8和1.9版本的....可是我太新潮啊,用了2.0....同样也不想回退到1.8或者1.9....所以继续找解决方案
上面推论是0.3.11的mysql2驱动不支持Ruby 2.0,通过 gem query -r --name-matches="mysql2" -V  命令查看可用的mysql2驱动发现有个版本是0.3.13,应该是最新版本,如果直接gem install mysql2会发现是安装这个版本....但是安装会悲剧,出现如下错误.....
 

谷歌之发现是不能编译native extension导致,于是有大神建议安装DevKit....可是我明明就在安装rails的时候安装了DevKit...因为不安装这个东西,Rails的bundle install总失败啊!!!!真是不友好的rails!!于是继续谷歌这个问题,有人建议使用-- -- with-opt-dir参数,并下载mysql-c-connector 6.02,将参数指定connector的解压缩目录....但是这个方法在我这里继续失败,还是无法编译。但是让我发现了另外一个参数----with-mysql-dir...试试这个吧,下面是见证奇迹的时刻
 

终于安装成功了!!!于是我赶紧尝试rake db:migrate ....可是你们懂的,哪里那么容易喜剧收尾呢,请继续往下看
 

Holy啊,rails非要用0.3.11....有大神的帖子说过,可以将0.3.13里面的mysql2.so拷贝到0.3.11下面的mysql2/2.0/mysql2下面去(2.0目录自己创建)但是我还是不想这种打补丁的方式解决问题...既然rails不听话,那就告诉它要听话咯,修改gemfle
 

这下该行了吧,哈哈,喜剧结尾
 

 
还有一点不要忘记了,将MySQL安装目录下lib目录里的 libmysql.dll  拷贝到Ruby安装目录下的bin目录里
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值