Ruby開發(fā)環(huán)境的終極配置(Railsinstaller1.3.0+mysql-5.1.61)
1.安裝Railsinstaller1.3.0
Packages included are:
Ruby 1.8.7-p352
Rails 3.0.7
Git 1.7.3.1
Sqlite 3.7.3
TinyTDS 0.4.5
SQL Server support 3.0.14
DevKit
安裝成功可以使用ruby -v來查看版本號(hào)。另外這個(gè)地方的環(huán)境變量可配也可不配,沒有影響。不過如果要是在命令行下面運(yùn)行.rb文件的話,想要不在.rb前面加ruby就運(yùn)行的話,需要設(shè)置.rb文件的默認(rèn)打開方式為ruby即可。
2.安裝mysql-5.1.61,安裝方法參看http://www.cnblogs.com/huzhiwei/archive/2012/02/22/2363811.html
安裝完成后使用mysql –u root –p來檢驗(yàn)是否安裝成功。
3.連接ruby與Mysql
方法一:
這一步是最麻煩的,也是最容易出問題的,在前面的日志中已經(jīng)給出來ruby1.9.2與Mysql5.5的解決方案(使用新版本的同學(xué),可以參考前面的日志)。
安裝MySQL gem(這一步與前面一樣)
安裝了MySQL之后,如果你的Ruby還沒有mysql驅(qū)動(dòng)支持(集成的Instant Rails中已經(jīng)有了),你需要安裝Ruby中對(duì)MySQL的驅(qū)動(dòng)支持。
gem install mysql
這將安裝2006/12/29日的mysql-2.7.3-mswin32.gem。需要注意的是,這個(gè)驅(qū)動(dòng)是支持Ruby 1.8的,目前在Windows(mswin32)上還沒有兼容1.9的gem出現(xiàn)(mysql-ruby-2.8x已經(jīng)支持1.9了,但是并沒有編譯好的gem出現(xiàn),需要自己編譯——而整個(gè)編譯會(huì)很痛苦)。
2008/8/21日發(fā)布了 mysql-2.8.1-mswin32.gem,這個(gè)版本支持Ruby 1.9了。
安裝完成后,在irb下面調(diào)用require ‘mysql’報(bào)錯(cuò):loaderror:no such file –mysql。然后需要到http://www.tmtm.org/en/ruby/mysql/下載并安裝ruby-mysql
Install
# ruby ./install.rb
此時(shí)報(bào)錯(cuò)會(huì)發(fā)生改變,為:
Client does not support authentication protocol requested by server; consider upgrading MySQL client。
請(qǐng)使用以下兩種方法之一
其一:
mysql> SET PASSWORD FOR
->
'some_user'
@
'some_host'
= OLD_PASSWORD(
'newpwd'
);
其二:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
實(shí)例:mysql> SET PASSWORD FOR –
> root@localhost = OLD_PASSWORD('newpwd'); 這樣配置之后運(yùn)行沒有問題了,不過不知道為什么輸出的版本號(hào)卻不是正確的,但是對(duì)數(shù)據(jù)庫的操作沒有問題,所以就沒有再研究下去。并且這種配置也不會(huì)出現(xiàn)http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369423.html的問題。
方法二:
通過DBI連接數(shù)據(jù)庫。
DBI模塊的安裝可以參照:http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369789.html
安裝完成后可以使用irb命令require ‘irb’來檢查是否安裝正確。我出現(xiàn)了以下問題:
問題1:gems/1.8/specifications/tilt-1.3.3.gemspec]: invalid date format in specification: "2011-08-25 00:00:00.000000000Z"
解決方案:
Search "spec" files in your Ruby directory: *C:\Ruby187\lib\ruby\gems\1.8\specifications*
If a gemspec file contains something like this: s.date = %q{2011-10-13 00:00:00.000000000Z} Then delete the 00:00:00.000000000Z part: s.date = %q{2011-10-13}
After saving those gemspec files, the problem is solved.
問題2:rb:57: undefined method `deprecate' for DBI: ate:Class (NoMethodError)
解決方案:網(wǎng)上說是因?yàn)榘姹驹蛟斐傻,所以我按照晚上的方法安裝了舊版本deprecated-2.0.1.gem,但是問題還是沒有解決,于是我又安裝了deprecated-3.0.0.gem,問題依然存在,不過我把deprecated-3.0.0.gem卸載掉問題就解決了。感覺這種解決方法很無語。
問題3:在執(zhí)行dbh=DBI.connect("DBI:Mysql:my(database):localhost","root","password" ,報(bào)錯(cuò):dbi.rb:300:in `load_driver': Unable to load driver 'Mysql'
解決方案:從網(wǎng)上下載一個(gè)舊版本的libmySQL.dll,將其放到ruby的bin目錄即可。
下載地址:
http://instantrails.rubyforge.or ... ql/bin/libmySQL.dll
也可從這里下載:
libmySQL
以上就是在配置過程中出現(xiàn)的問題,感覺這些開發(fā)軟件配置起來問題就一大堆,這還是沒有開發(fā)呢,讓人很不爽啊,不過全解決了,還是值得慶幸的。
|