ruby應用如何選擇mysql適配器

來源:互聯網
上載者:User

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 蘑菇街女裝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.