# Fehler- Komme nicht auf Datenbank



## Enigma228 (21. Nov 2010)

Hallo..

ich kann nicht auf meine Datenbank zugreifen.. Hat jemand eine Idee warum?

Fehler:
Konnte Verbindung nicht herstellen: 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.


```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DB_Connect {

	public Connection connectDB;
	public DB_Connect(String order) {
		String host="localhost", user="root", passwd="mypassword", database="japan";
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException cnfExc) {
			System.out.println("Konnte Treiber "+ cnfExc.getMessage()+" nicht laden.");
			System.exit(1);
		}
		try {
			String connectionCommand = "jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+passwd;
			connectDB = DriverManager.getConnection(connectionCommand);
			//Statement stmt = connectDB.createStatement();
			//stmt.execute(order);
		} catch (SQLException sqlExc) {
			System.out.println("Konnte Verbindung nicht herstellen: "+sqlExc.getMessage());
		}
	}

}
```

Aufruf über:

```
DB_Connect dbc = new DB_Connect("select * from tbl_symbol where level=1 and type=\"Hiragana\" ORDER BY RAND() LIMIT 10;");
```


----------



## gman (21. Nov 2010)

Hi,

mach in Zeile 10 mal [c]Class.forName("com.mysql.jdbc.Driver").newInstance();[/c], laut:

MySQL :: MySQL 5.1 Referenzhandbuch :: 25.3.5.1 Grundkonzepte von JDBC

soll das bei fehlerhaften Implementierungen des Treibers helfen. Ansonsten sehe ich auch keinen Fehler.


----------



## Enigma228 (21. Nov 2010)

Habs mal getestet, aber leider dasselbe Problem..
Laut Exception abfangen, hat er ja erst bei getConnection() ein Problem..
Datenbankname, user und Passwort sind aber korrekt..


```
try {
	String connectionCommand = "jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+passwd;
	connectDB = DriverManager.getConnection(connectionCommand);
	//Statement stmt = connectDB.createStatement();
	//stmt.execute(order);
} catch (SQLException sqlExc) {
	System.out.println("Konnte Verbindung nicht herstellen: "+sqlExc.getMessage());
}
```


----------



## gman (21. Nov 2010)

Hmm, dann weiß ich auch nicht recht weiter. Ich gehe mal davon aus das du dich mit anderen Tools auf die
Datenbank verbinden kannst. Auf welchem System läuft denn das (Windows, Linux)?


----------



## Enigma228 (21. Nov 2010)

Ich habe Vista drauf.. 
an der DB Installation liegt es nicht, weil ich auch mit PHP programmiere und damit habe ich keine Probleme auf die DB zuzugreifen..


----------



## not_me (22. Nov 2010)

hi, versuch mal:

connectionCommand = "jdbc:mysql://" + host + "/" + database, user, passwd;


----------



## Enigma228 (22. Nov 2010)

Davon mal abgesehen das es so nicht funktionieren kann.. (String über kommas verbinden?) habe ich es bereits probiert.
Es gibt ja 2 Varianten für "getConnection()".. Ein string oder oder 3 Strings durch Komma getrennt.. beide funktionieren nicht..

Leider..

Natürlich nutze ich nicht beide gleichzeitig..

```
String connectionCommand = "jdbc:mysql://"+host+"/"+database+"?user="+user+"&password="+passwd;
System.out.println("connectDB = DriverManager.getConnection(connectionCommand);");
//connectDB = DriverManager.getConnection(connectionCommand);
connectDB = DriverManager.getConnection("jdbc:mysql://localhost/japan", user, passwd);
```


----------



## Michael... (22. Nov 2010)

Welchen Treiber verwendest Du bzw. ist es die neueste Version?


----------



## Enigma228 (23. Nov 2010)

mysqlConnector 5.1.13


----------



## xjCoder (23. Nov 2010)

Hi,

hast Du mal den Port mit in Deinen Connectstring aufgenommen?


```
connectDB = DriverManager.getConnection("jdbc:mysql://localhost:[B]$PORT[/B]/japan", user, passwd);
```

...denn etwas anderes würde mir jetzt auf Anhieb auch nicht auffallen.


----------



## Enigma228 (23. Nov 2010)

Hat leider nicht funktioniert.
habe beide Varianten getestet:

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DB_Connect {

	private Connection connectDB;
	private Statement stmt;
	private ResultSet rs;
	public DB_Connect(String order) {
		String host="localhost", user="root", passwd="mypassword", database="japan";
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		} catch (Exception cnfExc) {
			System.out.println("Konnte Treiber "+ cnfExc.getMessage()+" nicht laden.");
			System.exit(1);
		}
		try {
			String connectionCommand = "jdbc:mysql://localhost:3306/japan?user="+user+"&password="+passwd;
			System.out.println("connectDB = DriverManager.getConnection(connectionCommand);");
			//connectDB = DriverManager.getConnection(connectionCommand);
			connectDB = DriverManager.getConnection("jdbc:mysql://localhost:3306/japan", user, passwd);
			System.out.println("stmt = connectDB.createStatement();");
			stmt = connectDB.createStatement();
			System.out.println("rs = stmt.executeQuery(order);");
			rs = stmt.executeQuery(order);
			while(rs.next()){
				System.out.println(rs.getInt(1)+" : "+rs.getString(2));
			}
		} catch (SQLException sqlExc) {
			System.out.println("Konnte Verbindung nicht herstellen: "+sqlExc.getMessage());
		}
	}

}
```


----------



## Michael... (23. Nov 2010)

Theoretisch sollte es funktionieren ;-)
Eventuell liegst an irgendwelchen Servereinstellung (eingestelltes Timeout zu gering...)

Mag jetzt banal klingen: schon mal einen ping auf localhost abgesetzt?


----------



## Enigma228 (23. Nov 2010)

C:\Windows\System32>ping localhost

Ping wird ausgeführt für Bear-Paw [::1] von ::1 mit 32 Bytes Daten:
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms
Antwort von ::1: Zeit<1ms

Ping-Statistik für ::1:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 0ms, Maximum = 0ms, Mittelwert = 0ms

C:\Windows\System32>


----------



## Enigma228 (23. Nov 2010)

Nachdem ich statt localhost die IP-Adresse 127.0.0.1 eingegeben hatte lief es wieder..

Danke allen für die Tips


Thomas

Nachtrag: 
Vermutlich ist Spybot schuld weil dieser die Datei
c:\windows\system32\drivers\etc\hosts
verändert.


----------

