ubuntuusers.de

[MySQL] Host... is not allowed to connect to this MySQL server

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

dersven

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

HI!

Also: Ich habe einen Ubuntu Server installiert, der eine eigene IP-Adresse hat. Darauf ist MySQL installiert, deren bisher einzige Einstellungen das setzen des Root-Passwortes, sowie das aendern der "bind-address" in der my.conf-datei (+restart!), damit ich auf MySQL von aussen zugreifen kann (so stand es im Wiki).

Nun moechte ich von einem ausserstehenden Recher Einstellung auf dem Server mittels mysql-admin vornehmen.

Server Hostname: (IP meines Servers)
Port: 3306
Username: Root
Passwort: (mein Passwort)

Ich bekomme allerdings die Fehlermeldung

Could not connect to host 'XXX.XX.XX.XXX'.
MySQL Error Nr. 1130
Host 'XXX.XX.XXX.XX' is not allowed to connect to this MySQL server

Click the 'Ping' button to see if there is a networking problem.

Anpingen kann ich den Rechner. Ich kann mich auch per SSH einologgen.

Allerdings funktionieren diverse Vorschlaege die ich ueber Suchmaschinen gefunden habe nicht. z.B. auf "Update user set host='%' where user='root';" kommt "ERROR 1046 (3D000): No database selected" aber die DB habe ich doch angegeben("user"),... Und es steht ja nicht da, dass sie nicht existiert, sondern dass ich die nicht angegeben habe.

Hat irgendjemand eine Loesung fuer das Problem, dass ich mich nicht mit mysql-admin einloggen kann?

Danke fuer die Hilfe

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Lauscht der Server denn auf dem Port (kannst du mit netstat prüfen)?

dersven schrieb:

z.B. auf "Update user set host='%' where user='root';" kommt "ERROR 1046 (3D000): No database selected" aber die DB habe ich doch angegeben("user"),...

Nein, user ist die Tabelle, mit der Datenbank musst du dich vorher verbinden.

bodensee

Anmeldungsdatum:
4. November 2006

Beiträge: 1971

Hallo,

wenn man in der SQL Konfiguration bind-address = IP des Rechners (Servers) angibt, kann man über das Netzwerk verbinden. Das wäre auch in mysql gestanden 😉

dersven

(Themenstarter)

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

bodensee schrieb:

Hallo,

wenn man in der SQL Konfiguration bind-address = IP des Rechners (Servers) angibt, kann man über das Netzwerk verbinden. Das wäre auch in mysql gestanden 😉

die bind-address habe ich ja bereits geaendert (siehe oben!)

dersven

(Themenstarter)

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

ditsch schrieb:

Lauscht der Server denn auf dem Port (kannst du mit netstat prüfen)?

Jo, bei "sudo netstat -tulpen" steht der Port auf LISTEN!

tcp        0      0 XXX.XX.XX.XXX:3306      0.0.0.0:*               LISTEN      103        207794      4934/mysqld  

xabbuh Team-Icon

Anmeldungsdatum:
25. Mai 2006

Beiträge: 6411

Hallo,

dein Problem ist, dass der entsprechende Benutzer in der Tabelle User der Datenbank keine Rechte für den Host eingerichtet hat.

dersven schrieb:

Allerdings funktionieren diverse Vorschlaege die ich ueber Suchmaschinen gefunden habe nicht. z.B. auf "Update user set host='%' where user='root';" kommt "ERROR 1046 (3D000): No database selected" aber die DB habe ich doch angegeben("user"),... Und es steht ja nicht da, dass sie nicht existiert, sondern dass ich die nicht angegeben habe.

Du musst vorher noch mit USE die Datenbank auswählen, zudem muss hinterher auch in jedem Fall FLUSH PRIVILEGES ausgeführt werden:

USE mysql; Update user set host='%' where user='root'; FLUSH PRIVILEGES;

Gruß

dersven

(Themenstarter)

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

xabbuh schrieb:

Du musst vorher noch mit USE die Datenbank auswählen, zudem muss hinterher auch in jedem Fall FLUSH PRIVILEGES ausgeführt werden:

USE mysql; Update user set host='%' where user='root'; FLUSH PRIVILEGES;

Das Klappt wunderbar. Danke!

Ich habe jetzt einen zusaetzlichen Nutzer eingerichtet, da ich 'root' nur vom localhost erreichbar haben will.

Antworten |