1

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また、言及する価値があるのは、コマンドプロンプトで1行ずつ入力してこのスクリプトを実行すると、機能することです。eRubyだけの問題のようです。

要点: Fedora Core 7 上で動作する Apache 2.2.8 MySQL 5.0.* (gemmysqlバージョン 2.8.1) Ruby 1.9.2

4

1 に答える 1

0

メッセージの場合はAccess denied、ユーザー名、パスワード、ホスト、およびポートを確認してください。

于 2013-02-16T14:52:27.107 に答える