JDBC und MYSQL

F

freakxnet

Schönen guten Morgen ;-),

nun denn ich habe da eine Problem.

Es geht um folgendes ich habe ein Java Chat Applet geschrieben mit einer MySql
DB auf Ubuntu 7.04. Wenn ich den JDBC Treiber lade und als URL localhost angebe funktioniert alles wunderbar. So nun wollte ich das ganze bei mir im Netzerk bzw. vom Internet aus testen ob alles so funktioniert wie es soll. Gebe ich nun als MySql url nicht localhost an sondern meine DynDns oder Netzwerk IP sagt er mir das er sich nicht verbinden kann mit folgender Exception

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Chat.MYSQLInit(Chat.java:255)
at Chat.init(Chat.java:96)
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)

** END NESTED EXCEPTION **

Last packet sent to the server was 1 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Chat.MYSQLInit(Chat.java:255)
at Chat.init(Chat.java:96)
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)
java.lang.NullPointerException
at Chat.ChatGetActiveUserList(Chat.java:455)
at Chat.init(Chat.java:98)
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)

Aufrufen tu ich die ganze Sache so:

this.mysqlConnection=DriverManager.getConnection("jdbc:mysql://192.168.1.2/ugn_new", this.mysqlUser, this.mysqlPassword);

Leider lässt er keine irgendwie keine Verbindung von aussen zu. Ich habe jetzt stundenlang nach einer Antwort gesucht aber irgendwie finde ich mal rein gar nix was mir helfen würde.

Hat jemand eine Lösung/Idee wie ich das ganze von aussen zugänglich machen kann.

Achso den JDBC Treiber habe ich direkt mit jar package implementiert. Wie gesagt auf localhost funktioniert alles einwandfrei.

Mit freundlichen Grüßen Andre

/*Edit*/

Gut ich versuche jetzt nocheinmal alle Daten zusammenzustragen

System: Ubuntu 7.04, Apache2, MySql5 Server

nmap: localhost

80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
3306/tcp open mysql

nmap: domain

22/tcp filtered ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
4662/tcp filtered edonkey -> weis zwar nicht warum der offen ist aber ok
5000/tcp filtered UPnP

nmap: 192.168.1.2

80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Java:

this.mysqlDriver=new String("org.gjt.mm.mysql.Driver");

try {
Class.forName(this.mysqlDriver).newInstance();

try {
this.mysqlConnection=DriverManager.getConnection("jdbc:mysql://domain:3306/db", this.mysqlUser, this.mysqlPassword);

if(this.mysqlConnection!=null) {
this.isConnected=true;
} else {
this.isConnected=false;
}

} catch (SQLException e) {
e.printStackTrace();
}


this.mysqlConnection=DriverManager.getConnection("jdbc:mysql://localhost/db", this.mysqlUser, this.mysqlPassword); -> Funktioniert einwandfrei

this.mysqlConnection=DriverManager.getConnection("jdbc:mysql://domain:3306/db", this.mysqlUser, this.mysqlPassword); -> Funktioniert nicht mit Fehlermeldung

/*Fehlermeldung*/
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.ConnectException
MESSAGE: Connection refused

STACKTRACE:

java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:208)
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Chat.MYSQLInit(Chat.java:255)
at Chat.init(Chat.java:96)
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)

** END NESTED EXCEPTION **

Last packet sent to the server was 3 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Chat.MYSQLInit(Chat.java:255)
at Chat.init(Chat.java:96)
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)
java.lang.NullPointerException
at Chat.ChatGetActiveUserList(Chat.java:455)
at Chat.init(Chat.java:9Cool
at sun.applet.AppletPanel.run(AppletPanel.java:417)
at java.lang.Thread.run(Thread.java:619)

Das Applet habe ich bei uns im Netzwerk versucht auszuführen und ich bekomme immer den selben
Fehler. Eine Verbindung zu 192.168.1.2 ist aus irgendwelchen Gründen nicht möglich. Ich habe nun sehr viel nachgelesen, finde aber keine relevanten Informationen zu dem Thema die mich weiterbringen würden. Das einzigste was ich jetzt noch gefunden habe ist

1. MySQL Server lauscht nur auf localhost wie man an nmap sieht (192.168.1.2 bringt auch kein mysql port)
da habe ich aber leider überhaupt keine Ahnung wie man das so einstellt das der nicht nur auf localhost lauscht. Ich denke das wenn ich mich versuche zu Verbinden einfach keine Verbindung zustamde kommt weil der Port ja irgendwie nich offen ist. Wie will der da was finden ?

2. Habe ich gelesen das es mit Applets immer so eine Sache ist sich zu Datenbanken zu verbinden weil irgendwelche Sicherheitszertifikate das nicht erlauben würden. Es soll helfen wenn man die jar signieren lässt. Inwiefern das was bringen soll weis ich nich.

Ich hoffe das es ersteinmal genug Informationen sind um eine schnelle Lösung zu finden, da die ganze Sache doch leicht drängt.
 
Zuletzt bearbeitet von einem Moderator:
Zurück