2011-04-08 125 views
0

我在將eRuby腳本連接到我的MySQL數據庫時遇到問題。通過eRuby連接到MySQL的問題

我寫了一個簡短的測試腳本,剛參加工作了初始連接錯誤:

<% 

require 'mysql' 

begin 
    dbh = Mysql::new("localhost", "test", "wahssf", "amg") 
rescue Mysql::Error => e 
    print "Error code: #{e.errno}<br />" 
    print "Error message: #{e.error}<br />" 
    print "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate") 
ensure 
    dbh.close if dbh 
end 

%> 

現在,只要我保持的連接參數爲亂碼(「測試」,「wahssf」,「 AMG「),該腳本將默認Mysql::Error類,並打印以下瀏覽器:

Error code: 1045 
Error message: Access denied for user 'test'@'localhost' (using password: YES) 
Error SQLSTATE: 28000 

但是,一旦我把真正的連接值並重新加載頁面,腳本失敗(因爲某些原因)和?我收到HTTP 500 Internal Server Error

我完全不知道是什麼問題。只要用戶名/密碼組合錯誤,腳本「有效」但顯然不能連接,但只要我給它正確的憑據,它就會失敗。

任何想法?

另外,值得一提的是:當我通過在命令提示符處通過irb逐行輸入它來執行此腳本時,它可以工作。它只有似乎成爲eRuby中的一個問題。

生命體徵: 的Apache 2.2.8在Fedora運行核心7 的MySQL 5.0 *(GEM mysql版本2.8.1) 紅寶石1.9.2

+0

服務器日誌中是否有任何內容?您也可以嘗試從命令行運行此代碼,並查看是否有錯誤輸出。 – 2011-04-08 02:47:10

+0

'/ruby.rhtml:7:in'close':錯誤的參數類型Mysql(期望的結構)(TypeError)' 我試着向dbh添加一個query()方法,並返回相同的錯誤。 – 2011-04-08 03:17:53

+0

如果你說'dbh = Mysql.new'而不是'dbh = Mysql :: new'會怎麼樣? – 2011-04-08 03:20:43

回答

0

如果消息是Access denied檢查用戶名,密碼,主機,和港口!