# MySQL-Verbindung ausschließlich zu localhost möglich



## berni78 (2. Aug 2007)

Hallo,

nach Tagen habe ich endlich das Problem mit dem MySQL-Treiber gelöst.
Ich habe den MySQL-Connector aus dem Netz geladen und das Jar-Archiv mit Eclipse importiert.

Die Zugangsdaten binde ich wie folgt ein:

```
private final static String driver = "com.mysql.jdbc.Driver";
private final static String url = "jdbc:mysql://localhost/datenbankname";
private final static String user = "username";
private final static String password = "userpassword"
```

Die Verbindung zur Datenbank baue ich folgendermaßen auf:

```
public static Connection connect () {
		Connection con = null;
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, password);
			
		} catch (ClassNotFoundException e) {
			System.out.println("Datenbanktreiber \""+driver+"\" konnte nicht geladen werden.");
		} catch (SQLException e) {
			System.out.println("Verbindung zur Datenbank \""+url+"\" konnte nicht aufgebaut werden.");
			e.printStackTrace();
		}
		return con;
	}
```

Das funktioniert soweit.

Da ich meine Java-Applikation aber auf einem anderen Rechner im Netzwerk installieren möchte, verwende ich:

```
private final static String url = "jdbc:mysql://server.heimnetzwerk.de/datenbankname";
```

Nun bekomme ich diese Fehlermeldung:

```
Verbindung zur Datenbank "jdbc:mysql://server.heimnetzwerk.de/datenbankname" konnte nicht aufgebaut werden.
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:518)
        at java.net.Socket.connect(Socket.java:468)
        at java.net.Socket.<init>(Socket.java:365)
        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)
        
** END NESTED EXCEPTION **

Last packet sent to the server was 0 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)
```

Woran kann es liegen?


----------



## DP (2. Aug 2007)

du musst im mysql dem user die remote-verbindung granten


----------



## berni78 (2. Aug 2007)

Wie mach ich das? :?:
Bei phpmyadmin habe ich keine Funktion gefunden mit der sowas möglich wäre.
Wenn ich bei den Rechten "GRAND" setzen funktioniert es jedenfalls nicht.
Kannst du mir einen Tip geben, wie ich das machen kann?


----------



## SlaterB (2. Aug 2007)

mysql user remote
hast du natürlich schon längst bei google eintippt, stimmts?

naja, ob's hilft kann man auch nicht sagen, u.a. ist
http://help.hardhathosting.com/question.php/87
dabei


----------



## miketech (2. Aug 2007)

In der "users" Table: In der Spalte "host" darf nicht localhost sondern muss ein "%" stehen.

Gruß

Mike

Edit: Und falls das alleine nicht genügt: Schau mal an welche IP sich MySQL bindet (in der my.cnf). Manchmal steht da per default "127.0.0.1" oder "localhost" drin. Dann ändere das zu seiner Netz-IP (z.B. 192.168.0.1 - halt die IP des Rechners).


----------



## berni78 (2. Aug 2007)

Achso, dass war gemeint  :roll: 
Das hatte ich bei der Erstellung der Datenbank schon längst gemacht.

Habe auch wegen des Problems schon Yahoo abgefragt  :### , aber nichts passendes gefunden.


----------



## miketech (2. Aug 2007)

Und das mit IP in der my.cnf (bind-address ist der Eintrag) hat auch nicht geholfen? 

Gruß

Mike


----------



## berni78 (2. Aug 2007)

Das eintragen der IP in der my.cnf half nichts. Dafür aber der ausgeschriebene Domainname.
Danke.


----------

