# Connection nur als root



## Rokko_11 (29. Dez 2009)

Hi!

Ich habe ein paar probleme mit meiner JDBC-Connection.
Ich habe Xampp installiert, auch einige neue User erstellt. Mein Problem ist, dass ich über Java nur eine Verbindung zu Mysql-Datenbank (welche auf dem localhost liegt) bekomme, wenn ich mich als root anmelde. Nicht jedoch als nicht-Admin.

Will ich mich bei der Online-Datenbank db4free.net anmelden, klappt alles wunderbar.

Hat jemand von euch eine Idee, wie ich das Problem lösen könnte?



Quelltext für die Connection:
public static Connection driver(String user, String pass) {
		java.sql.Connection con = null;
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			String url = "jdbc:mysql://localhost/db1";
			con = DriverManager.getConnection(url, user, pass);
		} catch (ClassNotFoundException c) {
			c.printStackTrace();
		} catch (SQLException c) {
			return null;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}

Gebe ich nun root & passwort ein, so bekomme ich ne ganz normale Verbindung. Bei anderen Eingaben null.


----------



## madboy (29. Dez 2009)

```
} catch (SQLException c) {
return null;
```
Nicht gut, lass die Exception ausgeben dann siehst du was genau schief läuft 

Ansonsten: noch Mal die Benutzereinrichtung durchlesen. Vielleicht haben die erstellten Benutzer kein Recht, sich zu verbinden? Wenn es mit "root" klappt, muss dort irgendwas anders sein als mit den anderen Benutzern.


----------



## Rokko_11 (29. Dez 2009)

Danke!


----------



## Meldanor (30. Dez 2009)

Es gibt bei MySQL eine Datenbank, wo alle User + deren Rechte abgelegt sind.
Diese nennt sich tollerweise "mysql" ^^
Dort findest du eine Tabelle "user".
In dem Attribut "host" kannst du eine IP eintragen, über welche auf die Datenbank zugegriffenw erden kann.
Wenn du willst, dass nur lokale Zugriffe kommen, dann trag dort "localhost" ein.
Wenn du willst, dass es auch externe gibt, aber egal welche IP, dann trag dort "%" ein.

Mit dem Befehl GRANT kannst du über die Konsole Berechtigungen setzen.
Siehe hier:
MySQL :: MySQL 5.1 Referenzhandbuch :: 13.5.1.3 GRANT und REVOKE
und für das Zugriffsrechtsetzen:
MySQL :: MySQL 5.1 Referenzhandbuch :: 5.8.5 Zugriffskontrolle, Phase 1: Verbindungsüberprüfung

Mfg
Mel


----------

