Ruby開發環境的終極配置(Railsinstaller1.3.0+mysql-5.1.61)

來源:互聯網
上載者:User

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

以上就是在配置過程中出現的問題,感覺這些開發軟體配置起來問題就一大堆,這還是沒有開發呢,讓人很不爽啊,不過全解決了,還是值得慶幸的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.