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