# Problem: java.sql.SQLException



## Alex_winf01 (27. Jul 2006)

Ich bekomme bei folgender Klasse eine java.sql.SQLException:


```
// Datei CreateMysqlTables01.java

import java.sql.*;

public class CreateMysqlTables01 {
    public static void main( String[] args ) {
        // Bitte ändern sie den Host-Namen auf
        // die Einstellung in Ihrem System.
        //String host = "maggie";
        String host = "localhost";
        
        String port = "3306";

        // Treiber-Typ ist "mysql".
        String dbType = "mysql";

        // Name der Datenbank.
        // Bitte ändern Sie den Namen entsprechend
        // Ihrer Konfiguration.
        //String dbName = "test";
        String dbName = "aeb";

        // Datenbank-User
        // Bitte ändern Sie den Namen entsprechend
        // Ihrer Konfiguration.
        //String dbUser = "hemu";
        String dbUser = "root";

        // Datenbank-Kennwort
        // Bitte ändern Sie das Kennwort
        // entsprechend Ihrer Konfiguration.
        String dbPwd = "";

        // Mit der folgenden Anweisung
        // geben wir die JDBC-Treiber für Oracle und
        // Mysql an, die je nach Vorhandensein
        // geladen werden.
        // (Dies kann man natürlich auch über
        // die Kommandozeile mit dem "-D"-Schalter
        // und dem Property "jdbc.drivers" tun).
        String myDrivers = "com.mysql.jdbc.Driver";

        System.setProperty(
            "jdbc.drivers",
            myDrivers
        );

        // Nun sollte der Treiber geladen sein.
        // Wir bauen die erste Verbindung zur
        // Datenbank auf.
        Connection conn = null;
        PreparedStatement pstmt = null;
        String sql = null;

        String uri = "jdbc:" + dbType + "://" + host + ":" + port + "/" + dbName;

        try {
            conn = DriverManager.getConnection(
                uri,
                dbUser,
                dbPwd
            );

            sql = "CREATE TABLE person (" +
        "pers_id BIGINT NOT NULL " +
        "AUTO_INCREMENT PRIMARY KEY," +
        "pers_ln VARCHAR( 255 ) BINARY NOT NULL," +
        "pers_fn VARCHAR( 255 ) BINARY NOT NULL," +
        "pers_mn VARCHAR( 255 ) BINARY," +
        "pers_email VARCHAR( 255 )," +
        "INDEX( pers_ln )," +
        "INDEX( pers_fn )," +
        "INDEX( pers_email )" +
            ")";
            

            pstmt = conn.prepareStatement( sql );
            pstmt.execute();

            sql = "CREATE TABLE address (" +
        "addr_id BIGINT NOT NULL " +
        "AUTO_INCREMENT PRIMARY KEY," +
        "addr_ctry VARCHAR( 255 ) " +
        "BINARY NOT NULL," +
        "addr_zip VARCHAR( 255 ) BINARY NOT NULL," +
        "addr_city VARCHAR( 255 ) " +
        "BINARY NOT NULL," +
        "addr_street VARCHAR( 255 ) " +
        "BINARY NOT NULL," +
        "INDEX( addr_ctry )," +
        "INDEX( addr_zip )," +
        "INDEX( addr_city )," +
        "INDEX( addr_street )" +
            ")";

            pstmt = conn.prepareStatement( sql );
            pstmt.execute();

            sql = "CREATE TABLE phone (" +
        "phone_id BIGINT NOT NULL " +
        "AUTO_INCREMENT PRIMARY KEY," +
        "phone_num VARCHAR( 255 ) NOT NULL," +
        "UNIQUE( phone_num )" +
            ")";

            pstmt = conn.prepareStatement( sql );
            pstmt.execute();

            sql = "CREATE TABLE pers_addr (" +
                "pa_pers_id BIGINT NOT NULL," +
                "pa_addr_id BIGINT NOT NULL," +
                "UNIQUE( pa_pers_id, pa_addr_id )" +
                ")";

            pstmt = conn.prepareStatement( sql );
            pstmt.execute();

            sql = "CREATE TABLE pers_phone (" +
                "pp_pers_id BIGINT NOT NULL," +
                "pp_phone_id BIGINT NOT NULL," +
                "UNIQUE( pp_pers_id,pp_phone_id )" +
                ")";

            pstmt = conn.prepareStatement( sql );
            pstmt.execute();
        } catch ( Exception ex ) {
            System.err.print(
                ex + "\nsql = " + sql
            );
            System.exit( 1 );
        } finally {
            if ( pstmt != null ) {
                try {
                    pstmt.close();
                } catch ( Exception ign ) {}
            }

            if ( conn != null ) {
                try {
                    conn.close();
                } catch ( Exception ign ) {}
            }
        }

        System.exit( 0 );
    }
}
```

Hier die Fehlermeldung:


```
java.sql.SQLException: Unable to connect to any hosts to exception: java.net.SocketException: Unrecognized Windows Sockets error: 10106: create
```



Die Datenbank aeb liegt ganz normal auf dem localhost. NUR ZU TESTZWECKEN habe ich derzeit nur den root ohne Passwort als User. Hier kommt selbstverständlich noch eine Zugriffskontrolle :bahnhof:


----------



## SamHotte (27. Jul 2006)

Und in welcher Zeile kommt die Exception?


----------



## Alex_winf01 (27. Jul 2006)

Der Fehler tritt in Zeile 58 auf.


----------



## Lim_Dul (27. Jul 2006)

Laut diesem Thread hier: http://forum.java.sun.com/thread.jspa?threadID=329241&messageID=2459095 kann es an der Umgebungsvariablen SYSTEM_ROOT liegen.


----------



## Alex_winf01 (27. Jul 2006)

Und wie kann ich das beheben? Der Fehler tritt auch an der Stelle auf, wenn ich einen Anwender Alex anlege mit entsprechendem Passwort.


----------



## Alex_winf01 (30. Jul 2006)

Also SystemRoot steht auf dem richtigen Verzeichnis c:\WINNT. Ich benutze Windows 2000 und Windows XP.


----------

