2017-01-13 4 views
2

jdbcを使用してmysqlデータベースに接続しようとしています。 *jdbc:データベースサーバへの接続を作成できませんでした

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 
    at com.mysql.jdbc.Util.getInstance(Util.java:408) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860) 
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2163) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2088) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at Database.<init>(Database.java:17) 
    at ServerTest.main(ServerTest.java:8) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 
Caused by: 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. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:341) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2251) 
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2104) 
    ... 19 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300) 
    ... 21 more 

:あなたは私のような、そのメソッドの呼び出しだと仮定することができ、今の

public class Database { 
    String userName = "myUserName"; 
    String password = "myPass"; 

    String url = "jdbc:mysql://xxx.xxx.xxx.xxx:3306/database_Name?autoReconnect=true&useSSL=false"; 

    public void connect() 
    { 
     try { 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 

      Connection conn = DriverManager.getConnection(url,userName,password); 

      Statement statement = conn.createStatement(); 
      String queryString = "select * from users"; 
      ResultSet rs = statement.executeQuery(queryString); 
      while (rs.next()) { 
       System.out.println(rs.getString(2)); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

: はここに私のデータベース接続クラスである

new Database().connect(); 

をそして私はこの例外を取得しますリモートからデータベースにアクセスするために%を追加しました。

* Java部分がローカルホストで動作していますが、このリモートデータベースを試すと失敗します。

*データベースとテーブルが作成されます。(これについては問題はありません。)

だからここでの問題はありますか?

+0

MySqlサーバーが起動していますか?パスワードとユーザーは正しいですか? – Gatusko

+0

はい、それは私のウェブサイトもそのサーバーで働いています.2つの異なるユーザー名とパスワードで試してみましたが、うまくいきませんでした。 –

+0

あなたのコードでエラーが見つかりません。全て大丈夫。唯一の場所はMySql Serverの設定ですが、コマンドラインからquerryを実行し、実際に動作しているか、他の場所からの接続を受け入れるかどうかを確認してください。 – Gatusko

答えて

2

のJavaパーツこれは、ローカルホストのために働いたが、私はこのリモートデータベースをしようとすると、それは

を失敗し、MySQLサーバをlocalhostにバインドされ、外部には表示されません。 MySql confファイルのbind-addressプロパティをホストのの実際のIPアドレスに設定してください。

例:バインドアドレス= 実際のIPアドレスことで192.168.1.26

は、私は、Javaコードを実行しているクライアントに表示されている方を意味します。これは、イントラネットアドレスまたはパブリックIPである可能性があります。パブリックIPを公開する場合は、ファイアウォールを使用する必要があります。

+0

私はvpsを使用していません。私は会社からホスティングを購入しました。私はmysql confにアクセスできないと思います。 –

+0

その場合、MySqlを構成するためのUIベースの方法が必要です。 – code

+0

私は、costumerをホスティングするためにMySqlを設定する方法はないと思います。 –

関連する問題