2016-12-21 9 views
0

私は、私が取り組んでいるプロジェクトでJDBCを使用して新しいデータベースに接続しようとしています。しかし、私はデータベースに接続しようとしている間にいくつかの問題にぶち当たっています。以下のエラーが表示されます。JDBCを使用したMYSQLデータベースへの接続

com.mysql.jdbc.CommunicationsException: Communications link failure due  to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException 
MESSAGE: Connection refused 

STACKTRACE: 

java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    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.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
at java.net.Socket.connect(Socket.java:589) 
at java.net.Socket.connect(Socket.java:538) 
at java.net.Socket.<init>(Socket.java:434) 
at java.net.Socket.<init>(Socket.java:244) 
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256) 
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271) 
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771) 
at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
at java.sql.DriverManager.getConnection(DriverManager.java:664) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at JDBC.main(JDBC.java:22) 
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) 


** END NESTED EXCEPTION ** 



Last packet sent to the server was 0 ms ago. 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2847) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
at java.sql.DriverManager.getConnection(DriverManager.java:664) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at JDBC.main(JDBC.java:22) 
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) 

このエラーが続くようである私のコードから生成されています。私は私のファイアウォールを無効にし、私の問題を修正しようとしているスタックオーバーフローのが、接続ああ、前の記事で見てきました

//STEP 1. Import required packages 
import java.sql.*; 

public class JDBC { 
    // JDBC driver name and database URL 
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost/"; 

    // Database credentials 
    static final String USER = "username"; 
    static final String PASS = "password"; 

    public static void main(String[] args) { 
     Connection conn = null; 
     Statement stmt = null; 
     try{ 
      //STEP 2: Register JDBC driver 
      Class.forName("com.mysql.jdbc.Driver"); 

      //STEP 3: Open a connection 
      System.out.println("Connecting to database..."); 
      conn = DriverManager.getConnection(DB_URL, USER, PASS); 

      //STEP 4: Execute a query 
      System.out.println("Creating database..."); 
      stmt = conn.createStatement(); 

      String sql = "CREATE DATABASE PREDICTOR"; 
      stmt.executeUpdate(sql); 
      System.out.println("Database created successfully..."); 
     }catch(SQLException se){ 
      //Handle errors for JDBC 
      se.printStackTrace(); 
     }catch(Exception e){ 
      //Handle errors for Class.forName 
      e.printStackTrace(); 
     }finally{ 
      //finally block used to close resources 
      try{ 
       if(stmt!=null) 
        stmt.close(); 
      }catch(SQLException se2){ 
      }// nothing we can do 
      try{ 
       if(conn!=null) 
        conn.close(); 
      }catch(SQLException se){ 
       se.printStackTrace(); 
      }//end finally try 
     }//end try 
     System.out.println("Goodbye!"); 
    }//end main 
} 

は拒否されています。どんな助けもありがたい。

+0

接続を参照してくださいあなたのURLにポート番号を使用することができなければならないです説明的。サーバーが実行されていないか、そのホストでリッスンしていません:ポート – e4c5

+2

[JavaデータベースへのJavaの接続]の可能な複製(http://stackoverflow.com/questions/2839321/connect-java-to-a- mysql-database) –

答えて

0

接続は、これは、サーバーへのTCP通信が積極的に拒否されたことを意味し

を拒否した - これは、TCPレイヤで行われた、接続はあなたのサービスにそれを作ったことがない - あなたのコードは、この時には無関係ですポイント。 SQLサーバーは、実際にあなたがより別のポートに接続している接続

  • を遮断する代わりにファイアウォールがある
  • を実行していない

    • これは、いくつかの異なる問題が原因で発生することができますサーバーはリッスンしています。

  • 0

    あなたのSQLサーバーは動作していないと思います。 サーバのステータスを確認してください。 またはサーバーを再インストールする必要があります。あなたの問題を解決するかもしれません。

    0

    DB_URLが間違っています。かなり自己は、データベース・サーバの詳細情報については、デフォルトのポート

    DB_URL = "jdbc:mysql://localhost:portNumber/databaseName";  
    

    を使用していない場合には

    DB_URL = "jdbc:mysql://localhost/databaseName"; 
    

    またはあなたも拒否したthis site

    関連する問題