# MySQl Connection- localhost geht, Remote nicht



## Myar (21. Oktober 2008)

Hallöchen!

Ich habe ein kleines Problem mit einer MySQl Datenbankanbindung.

Kurz der Code:

```
try{
                    // Treiber laden
                    DriverManager.registerDriver(new com.mysql.jdbc.Driver());
                    // Verbindung herstellen
                    String str = "jdbc:mysql://"+ server + ":" + port + "/" + database;
                    conn = DriverManager.getConnection(str, user, password);
		}catch(Exception e){ etc.
```

Wenn ich nun für "server" localhost einsetze, funktioniert das Programm wunderbar. Aber ersetze ich localhost gegen die IP vom localhost dann liefert conn = null.
Ich kann bereits ausschließen, dass es an den Usern der DB liegt. Über ein anderes Tool konnten die sich wunderbar per Remote einloggen in die DB.
Ich will also das Programm starten, aber es passiert nichts, per Debug kam ich bis zur Zeile: conn = etc. dann lief das programm einfach weiter (es öffnet sich kein Fenster, aber der Prozess läuft) und es gibt keine Exeption.
Auch der Port wird belauscht und Firewall lässt durch. Wie gesagt, bereits getestet.
Ist der jdbc Treiber nicht für Remoteverbindungen geeignet oder woran könnte es liegen?

Brauche dringend Hilfe Oo

Gruß
Myar


----------



## benhaze (21. Oktober 2008)

der Treiber ist OK, denke ich....

gibbet echt keine Exception?

Wie ist denn deine IP?

versuch mal folgendes:


```
try{
   // Treiber laden
   //DriverManager.registerDriver(new com.mysql.jdbc.Driver());
   Class.forName( "com.mysql.jdbc.Driver" ); //macht sehr wahrscheinlich das gleiche...ABER man steckt ja nicht drin...
   // Verbindung herstellen
   String str = "jdbc:mysql://"+ server + ":" + port + "/" + database;
   conn = DriverManager.getConnection(str, user, password);
   System.out.printLn("Alles gut!")
}
catch(Exception e)
{
   e.printStackTrace();
}
```

Ich habe nämlich echt schon Pferde kotzen gesehen!
Ich sagte nem IT-LEITER (von nem Kunden), er solle localhost eintippen....
Dann sagte ich, er solle es mit der IP versuchen (ich sagte: 127.0.0.1)

Er fragte darauf: wie war das? 127?
ich: PUNKT 0
er: ja und weiter?
ich: nochmal PUNKT 0
er: ja?
ich: PUNKT 1 
naja...soviel zum Thema LEITER DER IT-Abteilung....


----------



## Myar (21. Oktober 2008)

Hallöchen!

Danke für die Antwort, werde es morgen im Büro testen.
Ja, solche Fälle gibbet, läuft meist anders als man denkt. 

Ne es wird keine Exception geworfen, hab den Catchblock wie du im Programm stehen, da kommt gar nichts.
Das Programm läuft weiter, nur ohne Datenbankanbindung (anscheinend) öffnet sich schon der Mainframe nicht. Is ja das erste was gemacht wird, erstmal Verbindung zur DB.

Das dumme an der Sache ist einfach, dass die DB auf nem anderen Server laufen soll und ich einfach mal testen wollte, ob die Verbindung über Eingabe der IP halt auch t... was nicht der Fall war -.-
Naja, morgen mal gucken

Schönen Abend
Myar


----------



## Oliver Gierke (22. Oktober 2008)

Kann es sein, dass die DB nicht so konfiguriert ist, dass sie Verbindungen von ausserhalb erlaubt? In der Defaulteinstellung erlaubt MySQL nur Verbindungen von localhost.

Gruß
Ollie


----------



## benhaze (22. Oktober 2008)

Oliver Gierke hat gesagt.:


> Kann es sein, dass die DB nicht so konfiguriert ist, dass sie Verbindungen von ausserhalb erlaubt? In der Defaulteinstellung erlaubt MySQL nur Verbindungen von localhost.



war auch zuerst meine Vermutung...
Aber:



> Über ein anderes Tool konnten die sich wunderbar per Remote einloggen in die DB


----------



## Myar (23. Oktober 2008)

Hallöchen!

So, tut mir leid, gestern war ich nicht im Büro, konnte erst jetzt benhazes Tip ausprobieren.
Leider ohne Erfolg 

Die MySQL Datenbank ist richtig konfiguriert, habe hier zwei Stunden mit nem DB Spezi bei usn gesessen, der konnte nciht weiter finden und wie gesagt, nen anderes Tool hat die Remoteverbindung aufnehmen können.

Es ist auch völlig egal, ob ich die IP eintrage oder den Computernamen (der übers Intranet über IPv6 aufgelöst wird). Beides führt dazu, dass das Programm nicht richtig ausgeführt wird.
Gebe ich localhost oder 127.0.0.1 ein, t es *seufz*. Vieleicht liegt der Hund auch woanders begraben. Ich versuche nochmal genau zu beschreiben, was passiert.

Wenn der Server als localhost eingetragen wird, kann ich das java Programm starten, läuft man per Debugger, sieht man, dass noch bevor das Hauptfenster auf dem Bildschirm erscheint, die Verbindung zu DB hergestellt wird. Dann öffnet sich das Fenster und das Prog kann verwendet werden.
Gebe ich nun eien IP als Server ein, die nciht localhost ist, führe das Programm dann im Debug aus, läuft es bis zu dem Punkt, wo die Verbindung geöffnet werden soll. conn ist gleich null und der Prozess läuft weiter, das Programm beendet nicht, sondern läuft, aber das Fenster öffnet sich nicht.
Auch über das MySQl Administratortool, sehe ich keine Verbindung zur DB.

Joah, ich steh aufm schlauch...

Gruß
Myar


----------



## Myar (23. Oktober 2008)

Kleiner Nachtrag.

Habe gerade eine Desktop Aplication erstellt, die bei Buttondruck auf selbem Wege eine DB Verbindung herstellt.
Selber fehler.

Nun kommts, danach eine Konsolenaplication die bei Start, die selbe Verbindung herstellt. Läuft durch!
Also zur Entwicklung habe ich NetBeans verwendet um komfortabler die GUI zu gestallten.
Aber wie kann es an der GUI durch NetBeans liegen? Oo

Jemand da ne Idee?

Gruß
Myar


----------

