0

MySQLデータベースに接続しようとすると、次のエラーが発生し続けます。

exception

javax.servlet.ServletException: JDBC Problem: 
root cause

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
root cause

java.net.ConnectException: Connection timed out: connect

ここにいくつかのコードがあります:

Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        try{
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection
                    ("jdbc:mysql://mysql11.000webhost.com/database_name","user_name","password");
        stmt = con.createStatement();
        rs = stmt.executeQuery("INSERT into emailadresses('email') values ('"+email+"')");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(EmailServlet.class.getName()).log(Level.SEVERE, null, ex);
        }catch(SQLException e){
            throw new ServletException("JDBC Problem: ", e);
        }

編集:ライブラリにmysql-connector-javajarファイルがあります

編集:問題を見つけました私はデータベースをホストしているサイトで答えを探していましたが、これを見つけました:

JDBC/ODBC is not supported here

そのs*cks .. ..

4

4 に答える 4

1

「ソケットをリモートアドレスおよびポートに接続しようとしたときにエラーが発生したことを示します。通常、接続はリモートで拒否されました(たとえば、リモートアドレス/ポートでリッスンしているプロセスがありません)」。-OracleDocsから

接続文字列を調べて、データベース、ユーザー名、およびパスワードが正しく入力されていることを確認してください。

もう1つの原因は、データベースサーバーが起動していないことです。

于 2012-11-13T15:11:13.157 に答える
1

はい、それはクラスパスの問題ではなく、ネットワークの問題です。何らかの理由で、クライアントマシンから特定のホストへのネットワーク接続を確立できません。そうそう、たくさんのことがあるかもしれません。

  • サーバーは実際には実行されていません!
  • ホスト/IPが間違っています
  • ファイアウォール(あなたの側)
  • ファイアウォール(反対側)
  • 他にネットワークの問題があるかもしれません
于 2012-11-13T14:54:10.000 に答える
1

間違いなくネットワークの問題です。tcp接続は拒否されず、代わりにタイムアウトエラーが発生することに注意してください。私の経験では、この動作は、TCPハンドシェイクが正しくファイナライズされていないことが原因である可能性があります(ファイアウォールがSYNパケットをドロップするなど)。

于 2012-11-13T15:02:41.323 に答える
1

アプリケーションを実行しているマシンの任意のデータベースクライアント(sqlyogなど)からそのデータベースに接続してみてください。クライアントからの接続にも失敗した場合は、確かにネットワークの問題です。

于 2012-11-13T15:15:25.943 に答える