2016-12-11 4 views
0

Ich versuche, über Java mit SQL DB zu verbinden. Wenn ich den Code ausführen, wird in der Konsole gedruckt: Verbindung zur Datenbank ... dann passiert nichts und ich muss das Programm stoppen.Verbinden mit SQL über Java

package javasqltest; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class JavaSQLTest { 

    static final String JDB_DRIVER = "com.mysql.jdbc.Driver"; 
    static final String DB_URL = "jdbc:mysql://localhost:1527/"; 

    static final String USER = "test"; 
    static final String PASS = "test"; 

    public static void main(String[] args) { 

     Connection conn = null; 
     Statement stmt = null; 

     try {   
      Class.forName("com.mysql.jdbc.Driver"); 

      System.out.println("Connecting to database..."); 
      conn = DriverManager.getConnection(DB_URL, USER, PASS); 

      System.out.println("Creating database..."); 
      stmt = conn.createStatement(); 

      String sql = "CREATE DATABASE STUDENTS"; 
      stmt.executeUpdate(sql); 
      System.out.println("Database created successfully..."); 
     } catch (SQLException se) {   
      se.printStackTrace(); 
     } catch (Exception e) {   
      e.printStackTrace(); 
     } finally {   
      try { 
       if (stmt != null) { 
        stmt.close(); 
       } 
      } catch (SQLException se2) { 
      } 
      try { 
       if (conn != null) { 
        conn.close(); 
       } 
      } catch (SQLException se) { 
       se.printStackTrace(); 
      } 
     } 
     System.out.println("Goodbye!"); 
    } 
} 

Hilfe zur Behebung dieses Problems.

Vielen Dank im Voraus.

LE:

Wenn ich ändern den Port 3306 dieser die Konsolenausgabe ist:

run: 
Connecting to database... 
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) 
Goodbye! 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1117) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:355) 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2461) 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2498) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822) 
    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:422) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317) 
    at java.sql.DriverManager.getConnection(DriverManager.java:664) 
    at java.sql.DriverManager.getConnection(DriverManager.java:247) 
    at javasqltest.JavaSQLTest.main(JavaSQLTest.java:27) 
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:345) 
    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 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:259) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305) 
    ... 15 more 
BUILD SUCCESSFUL (total time: 2 seconds) 
+0

Für was es wert ist, ist es nicht üblich, ganze Datenbanken wie diese zu erstellen; Üblicherweise machen Sie das extern mit Management-Tools. Das Programm wird oft * Tabellen * innerhalb einer Datenbank manipulieren. – chrylis

Antwort

1

Die MySQL JDBC-Verbindungs-URL so etwas wie dies in der Regel aussieht:

jdbc:mysql://localhost:3306/dbname 

wo dbname ist der Name Ihrer MySQL-Datenbank und 3306 ist der Standard-Port, auf dem MySQL zuhört. Wenn Ihr MySQL wirklich auf Port 1527 hört, können Sie das stattdessen verwenden. Sie haben den Namen einer Datenbank nie angegeben, und dies allein würde dazu führen, dass die Verbindung fehlschlägt.

+0

Hallo Tim und danke, ich habe die DB über Netbeans IDE erstellt und das war der Standard-Port, der erschien. Auch wenn ich die URL zu/localhost: 1527/sqltest ändere, ist das Ergebnis dasselbe. Ich habe das Tutorial zu tutorialspoint verfolgt, aber ich verstehe nicht, warum es dort ohne Fehler bleibt. –

+0

Finden Sie heraus, welchen Port MySQL tatsächlich verwendet. –

+0

Wenn ich den Port zu 3306 wechseln, erhalte ich einen Fehler: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Kommunikationsverbindungsfehler Das letzte erfolgreich an den Server gesendete Paket war vor 0 Millisekunden. Der Treiber hat keine Pakete vom Server erhalten. Also ich denke, der Hafen 1527 ist in Ordnung. Wie kann ich den von MySQL verwendeten Port herausfinden? –

Verwandte Themen