# Verbindung unter Linux erstellen



## Zweg (17. Mrz 2007)

Hallo!
Ich will eine Verbindung zur Datenbank unter Linux aufbauen. Das Laden des Treibers funktioniert schon mal, leider aber nicht die Verbindung zur Datenbank...


```
import java.sql.*; 
public class SqlTest { 
     
    public static void main(String[] args) { 
 
        try { 
	    System.out.println("* Treiber laden"); 
       	    Driver D =  (Driver)Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
	    System.out.println(Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")); 
	    System.out.println(Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance());
            Connection conn = DriverManager.getConnection("jdbc:odbc://127.0.0.1:3306/var/lib/mysql/dldb","root","" );//hier steckt der Fehlerteufel! 
        } 
        catch (Exception e) { 
            System.err.println("Unable to load driver."); 
            e.printStackTrace(); 
        } 
	
     } 
    
}
```

Die Angesprochene Datenbank liegt unter /var/lib/mysql

Als Fehlermeldung erhalte ich;



> java.sql.SQLException: [unixODBC][Driver Manager]DRIVER keyword syntax error
> at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
> at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
> at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3074)
> ...



Wo liegt mein Fehler?

Dankeschön im Voraus!


----------



## DocRandom (17. Mrz 2007)

Hallo Zweg!

Nun, nachdem Du auf eine mySQL-Datenbank zugreifst solltest Du auch mal den richtigen Treiber dazu laden.
Weiters ist der direkte Pfad zur Datenbank *nicht* anzugeben, sondern nur der Datenbankname.
Wenn Du local auf die Datenbank zugreifst, brauchst Du auch keinen Port angeben, das System handlet das intern über nen socket.
Ergo schaut dann das ganze in etwa so aus:

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

...
try {
    Connection conn = 
       DriverManager.getConnection("jdbc:mysql://localhost/test?" + 
                                   "user=monty&password=greatsqldb");

    // Do something with the Connection

   ...
} catch (SQLException ex) {
    // handle any errors
    System.out.println("SQLException: " + ex.getMessage());
    System.out.println("SQLState: " + ex.getSQLState());
    System.out.println("VendorError: " + ex.getErrorCode());
}
```
mfg
DocRandom


----------



## Zweg (18. Mrz 2007)

DocRandom hat gesagt.:
			
		

> Hallo Zweg!
> 
> Nun, nachdem Du auf eine mySQL-Datenbank zugreifst solltest Du auch mal den richtigen Treiber dazu laden.
> Weiters ist der direkte Pfad zur Datenbank *nicht* anzugeben, sondern nur der Datenbankname.
> Wenn Du local auf die Datenbank zugreifst, brauchst Du auch keinen Port angeben, das System handlet das intern über nen socket.



Nachdem ich letzten Punkt beherzigt habe, verbleibt:

```
java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(DriverManager.java:545)
        at java.sql.DriverManager.getConnection(DriverManager.java:193)
        at SqlTest.main(SqlTest.java:19)
```
was sich ja wohl auf den Treiber bezieht.
Ich habe über yast bereits den jdbc-Treiber installiert (oder brauche ich zwingend den vom Link oben?). Nur weiss ich nicht, welchen Pfad ich jetzt angeben muss bzw. wo ich diesen denn finde....

Nochmal danke im Voraus!


----------

