# Connection problems



## purzelbaum_m (26. Jun 2006)

Hallo,
ich habe folgendes Problem; mein Applet kann nur dann einen Datenbankzugriff erfolgreich abschließen, wenn ich folgenden Syntax nehme:

```
String data = "jdbc:mysql://localhost/test_db";
```

wenn ich aber die IP Eintrage, wie hier... dann bekomme ich diese Fehlermeldung...
was muss ich tun, damit dies nicht geschieht? - kann mir da wer weiterhelfen?


```
String data = "jdbc:mysql://192.168.10.10/test_db";
```

java.sql.SQLException: Data source rejected establishment of connection,  message from server: "Host 'BMMW0129.BME.corp.com' is not allowed to connect to this MySQL server"
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:650)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1808)
	at com.mysql.jdbc.Connection.<init>(Connection.java:452)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
	at java.sql.DriverManager.getConnection(DriverManager.java:525)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at phoma.SQLconnection.getMasterData(SQLconnection.java:135)
	at phoma.SQLconnection.<init>(SQLconnection.java:29)
	at phoma.SQLconnection.main(SQLconnection.java:33)

Vielen Dank,
Gruß, Andy


----------



## thE_29 (26. Jun 2006)

Tjo, was könnte und das woll sagen...

Ist diese Exception so schwierig zu lesen?

Kannst du kein Englisch?

Rate mal was du machen könntest ^^ 

Du musst die User Accounts so konfen, das sie net nur über localhost drauf zugreifen können!

Das is das Problem!

Beim mysql Admin unter user Administration kann man dem user hosts vergeben!

Kp wie man alle hinzufügen kann!


----------



## foobar (26. Jun 2006)

HHmmm, auf welche Adresse wird denn localhost aufgelöst? Ist 192.168.10.10 wirklich die IP deines lokalen Rechners? Wie sieht die Mysqlconfig aus?


----------



## purzelbaum_m (26. Jun 2006)

ich arbeite mit xampp^^
nö, die IP Addresse ist ne andere, eine 10. ..... ich wollte sie nur ned im Forum angeben^^

tja, config file.. ist wohl die my.cnf file, oder? - da steht in WinMySQL, das ich keine habe^^
- brauche ich so eine... ???:L 

Hab jetzt bei phpMyAdmin, die Benutzerrechte neu gesetzt, hab allen Users auf allen Rechnern uneingeschränkte Rechte für SELECT gegeben.. glaub, jetzt gehts^^ - aber ist das denn "schön" - will nicht nach dem Motto "was nicht passt wird passend gemacht" arbeiten^^ :roll: 

@thE_29 ich habe schon verstanden was das Problem ist, und zwar das mir die Rechte fehlen, und Deine Antwort ist vollkommen korrekt das ich da wohl die Rechte ändern muss^^ - was ich aber eigentlich damit ausdrücken wollte ist, wie kann ich die Rechte ändern, am besten so das kein Sicherheitsrisiko entsteht.. - hab mich da wohl etwas schlampig ausgedrückt^^ - außerdem habe ich bisher nur mit Access gearbeitet und SQL nur in Theorie gehabt und bekannterweise ist die Theorie nicht gleich Praxis und Access-geklicke nicht gleich mySQL "gehacke"^^   Ich bitte daher um Geduld mit mir *g*


----------



## purzelbaum_m (26. Jun 2006)

ja, es geht   

allerdings nur auf den Rechnern, wo auch der "com.mysql.jdbc.Driver" vorhanden ist - also auf den wenigsten^^ schade

danke


----------



## AlArenal (26. Jun 2006)

purzelbaum_m hat gesagt.:
			
		

> ja, es geht
> 
> allerdings nur auf den Rechnern, wo auch der "com.mysql.jdbc.Driver" vorhanden ist - also auf den wenigsten^^ schade



Ohne Treiber läuft nunmal nichts. Das ist bei Hardware nicht anders. Pack den Treiber ins Applet-JAR mit rein und aus die Maus.


----------



## purzelbaum_m (26. Jun 2006)

Leider habe ich keine Ahnung was ein JAR - Applet ist,.. ich habe jetzt einfach mal eins gemacht, mit JBuilder geht sowas ja recht einfach und habe auch gesehen, das dort der mySQL connector mit eingebunden worden ist, nun habe ich eine *.jar, neben meinem Projekt *.jpx ... und was muss ich jetzt machen?


----------



## thE_29 (26. Jun 2006)

Jo und du musst bei deinem Jar file sagen Rechtsklick ->Properties -> Dependicies -> (beim MSSQL Treiber) Include all

Das ganze im JBuilder halt machen!

Auf deutsc hisses Eigenschaften -> Abhängigkeiten oder so!

Dort kann man sagen welche externe Librarys er wie (alles, gar nix, nur Abhängigkeiten) miteinbinden soll in dein Jar!


----------



## purzelbaum_m (26. Jun 2006)

jab, - hab ich... und jetzt ganz normal das applet über http://10. ....  /phoma/classes/start.html im Browser aufrufen? - das klappt ned^^ - irgendwas habe ich wohl noch vergessen..

Macht man das denn eigentlich in der Praxis so:
Applet --> connect direkt auf sql Datenbank..
oder ist es sinnvoller eine Client Server Strategie zu machen, sprich Applet zum Server, Server befragt (local) die DB und schickt die Antwort zurück, Client zeigt an^^

@thE_29 ja, mein Englisch ist schlecht^^, neben www.java-forum.org und http://java.sun.com/j2se/1.5.0/docs/api/index.html habe ich noch www.leo.org andauernd auf *g*


----------



## AlArenal (26. Jun 2006)

purzelbaum_m hat gesagt.:
			
		

> Macht man das denn eigentlich in der Praxis so:
> Applet --> connect direkt auf sql Datenbank..
> oder ist es sinnvoller eine Client Server Strategie zu machen, sprich Applet zum Server, Server befragt (local) die DB und schickt die Antwort zurück, Client zeigt an^^



Kommt auf die Umgebung an. Je mehr das Ding einsetzen, desto wahrscheinlicher der Fall, dass externer direkter  Zugriff (aus Sicht des Netzwerks in dem die Server stehen) auf die DB nicht möglich ist. Daher arbeite ich serverseitig mit PHP und binde die Clients über XML-RPC an.


----------



## purzelbaum_m (26. Jun 2006)

ich muss noch viel lernen  :bahnhof:


----------



## merxleben (26. Jun 2006)

Hallo,

localhost wird immer nach 127.0.0.1 aufgelöst unabhängig, davon welche IP Adresse die Netzwerkinterfaces haben.
Du müßtet mal überprüfen ob deine Datenbank auch externe Zugriffe zuläßt. Alternativ probier mal die obige IP Adresse aus. Mit der müßte der Spass klappen.

Soweit dazu

Martin


----------



## purzelbaum_m (27. Jun 2006)

Bei mir auf dem Rechner funktioniert es...
Ich habe die Rechte bei phpmyadmin so gesetzt, das der Befehl SELECT von allen Benutzern und von allen Rechnern ausgeführt werden darf^^ - jetzt komme ich auch mit meiner eigentlichen IP darauf..

Nun hab ich das Problem, das bei mir eben der MySQL-Connector, ein JAR-File, also quasi der Treiber, nur bei mir auf dem Rechner ist: d.h. konkret, bei mir auf dem Rechner funktioniert mein Appelt, weil er den Treiber findet, auf den anderen Rechner im Netzwerk nicht.. und ich will nicht überall diesen "installieren" müssen

Jetzt habe ich gehört, es gebe die Möglichkeit, daraus ein Applet - Jar zu machen, was ich auch getan habe, ebenso habe ich bei dem eingebundenen MySQL Connector - JAR die Option auf "Include All" eingestellt, dennoch funktioniert es nicht.. ich hab keinen Plan was ich da noch machen muss^^

- muss ich nen anderen Link im Browser angeben, oder es irgenwie signifizieren oder ???

@ AlArenal: auf diesem Applet gehen maximal 10 Leute gleichzeit und fragen etwas ab, bzw ändern etwas in der DB..
- ist wohl geschickter ne schöne Server - Client Architektur zu bauen.. schadet sicherlich nicht, wie? 
Wäre aber auch schön wenn es anders klappen würde, einfach wegem dem Verständnis^^


----------



## AlArenal (27. Jun 2006)

Wenn du das erzeugt JAR-File mal anschaust (ist im Grunde ein ZIP-File, kannste also mit WinZIP, o.ä. öffnen), sind da auch diegleichen Inhalte drin, wie im JAR des MySQL-JDBC-Treibers? 

Wie lautet die Fehlermeldung auf den Rechnern, wo es nicht geht? Ist doch nicht dieselbe wie in deinem Eingangspost, oder?


----------



## purzelbaum_m (27. Jun 2006)

meine neue Exception:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

            at sun.applet.AppletClassLoader.findClass(Unknown Source)

            at java.lang.ClassLoader.loadClass(Unknown Source)

            at sun.applet.AppletClassLoader.loadClass(Unknown Source)

            at java.lang.ClassLoader.loadClass(Unknown Source)

            at java.lang.ClassLoader.loadClassInternal(Unknown Source)

            at java.lang.Class.forName0(Native Method)

            at java.lang.Class.forName(Unknown Source)

            at phoma.SQLconnection.getSeries(SQLconnection.java:92)

            at phoma.Start.deviceList(Start.java:483)

            at phoma.Start.actionPerformed(Start.java:806)

            at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

            at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

            at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

            at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

            at java.awt.Component.processMouseEvent(Unknown Source)

            at javax.swing.JComponent.processMouseEvent(Unknown Source)

            at java.awt.Component.processEvent(Unknown Source)

            at java.awt.Container.processEvent(Unknown Source)

            at java.awt.Component.dispatchEventImpl(Unknown Source)

            at java.awt.Container.dispatchEventImpl(Unknown Source)

            at java.awt.Component.dispatchEvent(Unknown Source)

            at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

            at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

            at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

            at java.awt.Container.dispatchEventImpl(Unknown Source)

            at java.awt.Component.dispatchEvent(Unknown Source)

            at java.awt.EventQueue.dispatchEvent(Unknown Source)

            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

            at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

            at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

            at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

            at java.awt.EventDispatchThread.run(Unknown Source)

Caused by: java.io.IOException: open HTTP connection failed.

            at sun.applet.AppletClassLoader.getBytes(Unknown Source)

            at sun.applet.AppletClassLoader.access$100(Unknown Source)

            at sun.applet.AppletClassLoader$1.run(Unknown Source)

            at java.security.AccessController.doPrivileged(Native Method)

            ... 33 more


----------



## AlArenal (27. Jun 2006)

Also ist der Treiber wohl doch nicht im JAR...


----------

