我在将我的 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
%>
现在,只要我将连接参数保持为乱码(“test”、“wahssf”、“amg”),脚本默认为Mysql::Error
该类并将以下内容打印到浏览器:
Error code: 1045
Error message: Access denied for user 'test'@'localhost' (using password: YES)
Error SQLSTATE: 28000
但是,一旦我输入 REAL 连接值并重新加载页面,脚本就会失败(出于某种原因?)并且我得到一个HTTP 500 Internal Server Error
.
我完全不知道问题是什么。只要用户名/密码组合错误,脚本“工作”但显然无法连接,但只要我给它正确的凭据,它就会失败。
有任何想法吗?
irb
另外,值得一提的是:当我通过在命令提示符下逐行键入来执行此脚本时,它可以工作。这似乎只是eRuby 中的一个问题。
Vitals:Apache 2.2.8 在 Fedora Core 7 MySQL 5.0.*(gemmysql
版本 2.8.1)上运行 Ruby 1.9.2