ubuntuusers.de

JDBC-Zugriff auf Mysql

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Helmut_Seidel

Anmeldungsdatum:
7. Oktober 2005

Beiträge: 123

Hallo zusammen,

ich versuche gerade aus einem Java-Programm (Java 1.5.0_06) auf eine MySQL-Datenbank zuzugreifen. Nachdem ich den JConnector heruntergeladen und den CLASSPATH gesetzt habe, kann ich den Treiber laden. Beim Versuch mich mit der Datenbank zu verbinden bekomme ich allerdings folgende Fehlerwmeldung:

Konnte Verbindung nicht erstellen:null, message from server: "Host 'localhost.localdomain' is not allowed to connect to this MySQL server"

Die Berechtigungen auf die Datenbank sind eigentlich korrekt gesetzt, da ich mich über phpmyadmin und mysql problemlos verbinden kann.

Ich verwende den folgenden ConnectionString:

jdbc:mysql://localhost:3306/ikommpakt?user=helmut

Für den user ist kein Passwort gesetzt.

Ich arbeite mit Ubuntu 5.10

Kann mir jemand sagen, was ich falsch mache?

Danke Helmut

sibnozruv

Anmeldungsdatum:
22. Juni 2005

Beiträge: 227

Könnte es sein das Dein MySQL - Server vielleicht keine Verbindungen auf dem Port 3306 zulassen. Gib mal

netstat -tap | grep mysql


ein, sollte da so etwas stehen (oder ähnlich)

tcp        0      0 localhost.localdo:mysql *:*                     LISTEN     2449/mysqld

ist das nicht der Fehler. Wenn das da nicht steht, geh mal in die /etc/mysql/my.cnfund kommentiere

skip-networking


mit

#skip-networking


aus. Wäre jetzt so das erst was mir einfällt.
Ich denke acuh nicht, dass es zwingen notwendig ist, den Port mit anzugeben.
Bei mir hat immer so etwas funktioniert:

con = DriverManager.getConnection("jdbc:mysql://192.168.0.3/azamon?user=dbinfo&password=dbinfo");


Bei dir dann also:

jdbc:mysql://localhost/ikommpakt?user=helmut&password=""

Wenn es immer noch nicht gehen sollte, meld dich einfach nochmal.
Gruss Basti

Helmut_Seidel

(Themenstarter)

Anmeldungsdatum:
7. Oktober 2005

Beiträge: 123

Hallo Basti,

danke für deine schnelle Antwort.

Leider funktioniert der Zugriff bei mir noch immer nicht:

Der Befehl netstat -tap | grep mysql gibt bei mir folgendes aus:

tcp 0 0 *:mysql *:* LISTEN -

Das heißt der LISTEN-Teil sieht anders aus - kann es daran liegen? Was müste ich tun?

Die Option skip-networking ist in meiner my.cnf durch die Angabe ersetzt:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

Noch mal danke für Deine Hilfe.

Helmut

Ertzu

Anmeldungsdatum:
6. Dezember 2005

Beiträge: Zähle...

Hi,
ich hatte mal ein ähnliches Problem.
Unter Ubunte 5.04 konnte ich das Problem so wie Basti lösen.

Aber unter 5.10 muss man glaub ich die Rechte der Datenbank ändern. Bei mir hat es geholfen in der Tabelle mysql.user in der Spalte host bei dem entsprechenden Benutzer ein "%" einzutragen. % ermöglicht den Zugriff auf die Datenbank von jedem Rechner aus.
Vielleicht genügt es auch wenn man den Namen des eigenen Rechners eingträgt.

Die Rechteeinstellungen wird wahrscheinlich einfacher in phpmyadmin möglich sein, aber damit hab ich keine erfahrung.

Bei mir hat es nicht genügt localhost einzutragen. Ich vermute das liegt daran das der jdbc Treiber immer den Weg über das Netzwerk wählt. Im gegsatz zu phpmyadmin das direkt auf die Datenbank zugreift. Allerdings bin ich mir da nicht ganz sicher.

Gruß Robert

Antworten |