3

ねえ、私はこのエラーが発生しています:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:
Could not create connection to database server. 
Attempted reconnect 3 times. Giving up.

データベースに接続しようとしています。このコードで

<%@page import="java.sql.*"%>

<%
try{
//  Class.forName("com.mysql.jdbc.Driver");
    Class.forName("org.gjt.mm.mysql.Driver");

    out.println("found");
} catch (ClassNotFoundException ex){
    out.println("Erro<br/>");
    out.println(ex.toString());
} catch (Exception e){
    out.println(e.toString());

}

Connection ocon;

try{
ocon = DriverManager.getConnection("jdbc:mysql://localhost/cpjcoimbra?autoReconnect=true", "*****", "*****"); //password matches
out.print("connected");
} catch (Exception e){
    out.println(e.toString()+"<br/>");
}

%>

ドライバーは見つかりますが、データベースに接続しようとするとエラーが発生します。

私はカタリナ50.local.policyでこの許可を持っています

grant codeBase "file:/var/lib/tomcat6/WEB-INF/lib/-" {
  permission java.security.AllPermission;
};

なぜそのエラーが表示されるのか、誰にも分かりますか?

編集: サービスの mysql ステータスは次のようになります:

 * /usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.37, for debian-linux-gnu on i486
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version      5.1.37-1ubuntu5
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         1 hour 32 min 21 sec

Threads: 1  Questions: 103  Slow queries: 0  Opens: 171  Flush tables: 1  Open tables: 41  Queries per second avg: 0.18
4

2 に答える 2

2

ドライバーが間違っています - 「com.mysql.jdbc.Driver」クラスを使用してください。

JSPのスクリプトレットコード? ああ、それは良くない。

しかし、それらはあなたの問題の原因ではありません。

そのユーザー名とパスワードにアクセス許可を付与しましたか? サンプル手順は次のとおりです。

  1. root としてログインします: mysql –h localhost –u root –p <ret>; password = <管理者パスワード>
  2. 「データベース x を作成;」</li>
  3. 「'q' で識別されるユーザー p を作成します。」</li>
  4. 「x.* のすべてを 'x'@'%' に許可します。」</li>

データベースに接続するときに、ユーザーの作成に使用したユーザー名 p とパスワード q を指定します。

サービスが稼働していて、ポート 3306 でリッスンしていることを確認します。コマンド シェルを開き、「netstat -a」と入力して、ポート 3306 でリスナーを探します。

MySQL バグ データベースからのこのエントリも関連している可能性があります。

今後の参考のために、Google に表示されるエラー メッセージを貼り付けておくと便利です。特定の問題に遭遇したのは私が最初ではない可能性があります。

これをなんとか解決して動作させたとしても、これは依然として致命的な欠陥のある設計です。JSP はデータベースに直接接続しています。プレーン テキストで入力したユーザー名とパスワードを除いて、セキュリティはありません。あなたは本当にこれをしたくありません。

接続に問題があります。手始めに、それを JSP から分離します。

  1. コマンド シェルで MySQL 管理ツールを使用して接続できますか?
  2. データベースに正常に接続するための単純な Java クラスを作成できますか?
于 2009-11-14T19:22:12.577 に答える
0

MySQL を 5.1 から 5.0 にダウングレードしたところ、すべてが機能するようになりました。5.1 バージョンの何らかのバグに違いありません。

助けてくれてありがとう:)

于 2009-11-16T04:46:58.943 に答える