Zugriff auf MySQL-DB funktioniert nicht

  • Hallo,
    ich hab auf meinen Server Java installiert und versuch nun mit Hilfe einer *.jar Datei auf die Datenbank zuzugreifen. Die Skripte und alles hab ich auf meinen Rechner getestet und diese funktionieren einwandfrei. Zuerst hab ich von meinen Rechner aus versucht auf die DB (auf meinen Server) zuzugreifen, aber dies ging nicht (meine Vermutung ist, dass Zugriffe von außen gesperrt sind).
    Dann hab ich die Datei vom Server aus ausgeführt, aber auch da kam der gleiche Fehler: "java.net.ConnectException: Connection refused"
    Woran könnte das liegen?


    Hab folgende Angaben gemacht für die Verbindung gemacht:
    url = "jdbc:mysql://localhost:3306/DBNAME"
    "DriverManager.getConnection(instance.url, "KUNDE", "PASSWORT")"


    Würde mich sehr über eine konstruktive Antwort freuen, da ich schon sehr viele Stunden dafür aufgebracht habe und schon so langsam am verzweifeln bin!


    MfG At-Slayer

  • Naja, wenn ich die .jar aufm Server habe und diese mit Putty dann ausführe (java -jar test.jar), dann führ ich die ja direkt aufm Server aus und nicht aufm Client. Deswegen glaub ich eigentlich nicht daran, dass es daran liegt.


    Hab hier auch schon geguckt wegen den Zugriff von außen, und hab in der MySQL konfig einiges ausprobiert, aber nichts führte zum Erfolg.


    Ausserdem hab ich an die Firewall gedacht, dass es vielleicht daran liegt, aber wenn man die aufm Server ausführt, dürfte es doch eigentlich auch nicht daran liegen...

  • Wenn Du das Jar File auf dem Server direkt startest, kann es eigentlich nur an den Eingestellten Privilegien liegen.
    Die Firewall ist (soweit Du das nicht anders eingestellt hast) komplett offen. Es wird nichts geblockt.


    Versuche es doch mal via SSH mit dem mysql eigenen Client.

    Code
    mysql -u username -p


    sieht dann bei einem erfolgreichen Login so aus:


    Ansonsten kann man mit netstat prüfen, ob der Dienst läuft.

    Code
    <sim4000> (~) netstat -tulpen
    (Not all processes could be identified, non-owned process info
     will not be shown, you would have to be root to see it all.)
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name   
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      89         13077      -
  • Vielen Dank für deine schnellen antworten!


    Ich hab mal das gemacht was du mir vorgeschlagen hast und nun kann ich wieder weiter eingrenzen ;)


    Also die Zugangsdaten scheinen zu stimmen, zumindest konnte ich mich via SSH einloggen. Auch der Dienst scheint vorhanden und gestartet zu sein. Also kann ich MySQL als Fehlerquelle ausschließen.


    Aber der Fehler kommt leider immernoch, also geh ich mal davon aus, das Javatechnisch was nicht korrekt ist. Muss ich vielleicht in einer Java-config noch was ändern oder weitere Bibliotheken hochladen?


    Hier die komplette Fehlermeldeung:

  • Ich habe mit Java zwar noch nie zu einer MySQL DB connected, aber irgendwie müsste das Problem an jdbc:mysql://localhost:3306/DBNAME liegen, wenn Connection refused als Fehler kommt. Denn d.h. er kann die Verbindung (eigentlich das Socket) nicht herstellen und das liegt (meiner Erfahrung nach) niemals an den Zugangsdaten, da er soweit gar nicht kommt. Probiere doch einmal statt localhost die lokale IP-Adresse des Servers aus, vielleicht macht der Treiber die DNS Auflösung nicht, ist nur so eine Idee. Und bist du sicher, dass jdbc:mysql:// korrekt ist?



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)