• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby应用如何选择mysql适配器

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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吧。

风之境地 java-javascript 蘑菇街女装


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby1.9.2+gem1.3.7+Rails3.0.1 windows下安装发布时间:2022-07-14
下一篇:
11、redis使用ruby实现集群高可用发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap