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來查看版本號碼。另外這個地方的環境變數可配也可不配,沒有影響。不過如果要是在命令列下面運行.rb檔案的話,想要不在.rb前面加ruby就啟動並執行話,需要設定.rb檔案的預設開啟檔案為ruby即可。
2.安裝mysql-5.1.61,安裝方法參看http://www.cnblogs.com/huzhiwei/archive/2012/02/22/2363811.html
安裝完成後使用mysql –u root –p來檢驗是否安裝成功。
3.串連ruby與Mysql
方法一:
這一步是最麻煩的,也是最容易出問題的,在前面的日誌中已經給出來ruby1.9.2與Mysql5.5的解決方案(使用新版本的同學,可以參考前面的日誌)。
安裝MySQL gem(這一步與前面一樣)
安裝了MySQL之後,如果你的Ruby還沒有mysql驅動支援(整合的Instant Rails中已經有了),你需要安裝Ruby中對MySQL的驅動支援。
gem
install
mysql
這將安裝2006/12/29日的mysql-2.7.3-mswin32.gem。需要注意的是,這個驅動是支援Ruby 1.8的,目前在Windows(mswin32)上還沒有相容1.9的gem出現(mysql-ruby-2.8x已經支援1.9了,但是並沒有編譯好的gem出現,需要自己編譯——而整個編譯會很痛苦)。
2008/8/21日發布了 mysql-2.8.1-mswin32.gem,這個版本支援Ruby 1.9了。
安裝完成後,在irb下面調用require ‘mysql’報錯:loaderror:no such file –mysql。然後需要到http://www.tmtm.org/en/ruby/mysql/下載並安裝ruby-mysql
Install
# ruby ./install.rb
此時報錯會發生改變,為:
Client does not support authentication protocol requested by server; consider upgrading MySQL client。
請使用以下兩種方法之一
其一:
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;
執行個體:mysql> SET PASSWORD FOR –
> root@localhost = OLD_PASSWORD('newpwd'); 這樣配置之後運行沒有問題了,不過不知道為什麼輸出的版本號碼卻不是正確的,但是對資料庫的操作沒有問題,所以就沒有再研究下去。並且這種配置也不會出現http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369423.html的問題。
方法二:
通過DBI串連資料庫。
DBI模組的安裝可以參照:http://www.cnblogs.com/huzhiwei/archive/2012/02/27/2369789.html
安裝完成後可以使用irb命令require ‘dbi’來檢查是否安裝正確。我出現了以下問題:
問題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::Date:Class (NoMethodError)
解決方案:網上說是因為版本原因造成的,所以我按照晚上的方法安裝了舊版本deprecated-2.0.1.gem,但是問題還是沒有解決,於是我又安裝了deprecated-3.0.0.gem,問題依然存在,不過我把deprecated-3.0.0.gem卸載掉問題就解決了。感覺這種解決方案很無語。
問題3:在執行dbh=DBI.connect("DBI:Mysql:my(database):localhost","root","password"),報錯:dbi.rb:300:in `load_driver': Unable to load driver 'Mysql'
解決方案:從網上下載一箇舊版本的libmySQL.dll,將其放到ruby的bin目錄,還要執行gem install dbd-mysql。
:
http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll
也可從這裡下載:
libmySQL
以上就是在配置過程中出現的問題,感覺這些開發軟體配置起來問題就一大堆,這還是沒有開發呢,讓人很不爽啊,不過全解決了,還是值得慶幸的。