ruby应用如何选择mysql适配器

转自: http://www.cnblogs.com/sky7034/archive/2011/03/23/1992309.html

rails2.2之前缺省安装mysql的驱动,之后缺省的已经变成sqlite3,如果与mysql连接,则需要自己选择安装。
在学习开源系统的时候,发现有的rails3的应用直接使用的是mysql2
在database.yml中直接是按照如下方式

development:
  adapter: mysql2
  encoding: utf8
  database: baseapp
  username: root
  password:
  host: localhost
 

在github查询之后,有一个三种ruby mysql 适配器的比较(三万行数据的遍历操作):
   user       system     total       real
  Mysql2
   0.750000   0.180000   0.930000 (  1.821655)
  do_mysql
   1.650000   0.200000   1.850000 (  2.811357)
  Mysql
   7.500000   0.210000   7.710000 (  8.065871)


可见mysql2的性能要高出许多。

注:
在windows、linux环境下会出现如下错误:
Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.
。。。
1、windows的解决方案:将mysql安装目录下的bin下的libmysql.dll复制到 ruby安装目录/lib下即可;在系统
2、linux的解决方案:在系统中找两个文件:libmysqlclient.so,mysql.h所在的目录,假设分别是/a和/b,然后执行下面操作即可:
gem install mysql2 -- --with-mysql-lib=/a --with-mysql-include=/b
通过源代码安装mysql的一般都有这样的文件 如果没有,则需要到网上下载libmysqlclient-dev 。

今天遇到了新的问题:
ruby1.8.7,rails2.3.8,gem install mysql2之后,进入console状态时,老是提示
D:/ir3/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in `establish_connection':RuntimeError: Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- java)
这和Java有什么关系?
于是删除与jdbc相关的gem包,提示又变成如下:
D:/ir3/ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:76:in `establish_connection':RuntimeError: Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_a
dapters/mysql2_adapter)

但是gem install activerecord-mysql2-adapter 根本不能使用,也就是没有这个gem包。

于是参照linux下的重新安装mysql2,将mysql目录添加;
gem install mysql2 -- --with-mysql-config=d:/ir3/mysql
安装成功后,执行ruby script/console,不再提示错误。
但是测试,查看类,键入User,返回正常;但是想查看一个记录,如User.first则出现“ArgumentError: invalid date”的错误。
嗨,在windows环境下,还是暂时回到mysql吧。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值