Jan: "Host not allowed to connect to this MySQL Server"

Moin Moin, Datenbaenker!

Ich habe da ein kleines Verbindungsproblem mit dem MySQL-Server. Fuer ein kleines entwickeltes Delphi-Tool, welches wiederkehrende Routinen (Codeschnipsel) auf einem Server verwalten soll, muss auf eine MySQL-Datenbank zugegriffen werden.

Testumgebung: 2x OS W2k, Apache2, MySQL

Eigentlich sollte alles fein konfiguriert sein. Von dem Server laesst sich die Datenbank ansprechen, so dass die Verbindung zwischen Delphi und MySQL lueppt. Auch kann ich von dem Client per phpMyAdmin auf die Datenbank und auf den entsprechenden Localhost zugreifen und auch umgekehrt. Firewalls sind ausgeschaltet, trotzdem erhalte ich die Fehlermeldung bei Starten der Applikation auf dem Client:

"Host (Clientname) is not allowed to connect to this MySQL-Server"

Beim Starten der Applikation ueber den Client vom Server erhalte ich alternativ die Meldung:

"Can't connect to MySQL-Server on localhost (10061)"

Eigentlich habe ich auch in der Datenbank "mysql" die entsprechenden Rechte, User und Hosts vergeben, so dass Zugriffe gewaehrt werden sollen.

Frage: Gibt es irgendwo weitere Knoepfe die eingestellt werden muessen? Ich bin in Datenbanken nicht so fit und dreh' hier gleich am Rad. ;)

Denkanstoesse waere nett!
Viele Gruesse,
Jan

  1. Moin!

    "Host (Clientname) is not allowed to connect to this MySQL-Server"

    Eigentlich habe ich auch in der Datenbank "mysql" die entsprechenden Rechte, User und Hosts vergeben, so dass Zugriffe gewaehrt werden sollen.

    Offenbar nicht.

    Im Gegensatz zu den sonst so vergebenen Accounts, beispielsweise im Apachen (HTTP-Authentifizierung, Linux-Useraccounts etc), definiert man bei MySQL zwingend auch noch die Quelle des Zugriffs: Wo kommt der Verbindungsversuch her, der einen definierten Usernamen und passendes Passwort benutzt? Damit kann man einen Account also so einrichten, dass man nur von der lokalen Maschine auf die Datenbank zugreifen darf, und von überall anders nicht reingelassen wird.

    Genau das passiert hier.

    Du mußt den Account doppelt anlegen. Einmal für localhost, und einmal für "Internet". Schau dir in phpMyAdmin mal die Benutzerrechte für root an, da ist das so durchgeführt.

    phpMyAdmin liefert außerdem eine Sektion, mit der man Benutzeraccounts erstellen kann. Das könnte die Sache für dich vereinfachen.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hallo Sven!

      Sorry, dass ich jetzt erst antworten kann. Komischerweise funktioniert die Verbindung, nachdem ich den Rechner zwei Tage lang "schlafen" liess - bloede Termine seien Dank!

      Trotzdem hab ich Deine Anleitung ausgefuehrt und gehe davon aus, dass jetzt keinerlei Probleme auftauchen sollten. Vielen Dank fuer Dein Feedback und Deine Loesung!

      Gruss,
      Jan

  2. echo $begrüßung;

    Auch kann ich von dem Client per phpMyAdmin auf die Datenbank und auf den entsprechenden Localhost zugreifen und auch umgekehrt.

    Der phpMyAdmin läuft sicherlich auf dem Server. Dass du per Browser vom Server Webseiten anschauen kannst, die dort generiert wurden, glaube ich dir gern :-) Aber was verstehst du unter "auch umgekehrt"?

    echo "$verabschiedung $name";