200 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
der user-Tabelle. Das k¨onnen Sie ¨uberpr¨ufen, indem Sie mysql -u root mysql und
folgendes SQL-Statement absetzen:
mysql> SELECT * FROM user;
Das Ergebnis sollte einen Eintrag enthalten, in dem die Host- und User-Spalten mit
dem Hostnamen Ihres Computers und Ihrem MySQL-Benutzernamen ¨ubereinstimmen.
• Die Access denied-Fehlermeldung sagt Ihnen, als wer Sie sich versuchen einzuloggen,
den Host, von dem aus Sie versuchen, sich zu verbinden, und ob Sie ein Passwort be-
nutzen oder nicht. Normalerweise sollten Sie in der user-Tabelle einen Eintrag haben,
der exakt mit Ihrem Hostnamen und Ihrem Benutzernamen ¨ubereinstimmt, die in der
Fehlermeldung ausgegeben wurden. Wenn Sie zum Beispiel eine Fehlermeldung erhal-
ten, die Using password: NO enth¨alt, bedeutet das, dass Sie versuchen sich einzuloggen,
ohne ein Passwort anzugeben.
• Wenn Sie folgenden Fehler erhalten, wenn Sie sich von einem anderen Host als dem,
auf dem der MySQL-Server l¨auft, zu verbinden, gibt es keine Zeile in der user-Tabelle,
die mit Ihrem Host ¨ubereinstimmt:
Host ... is not allowed to connect to this MySQL server
Das k¨onnen Sie mit dem Kommandozeilentool mysql beheben (auf dem Serverhost!)
und eine Zeile zur user-, db- oder host-Tabelle hinzuf¨ugen, die eine Benutzername-
/Hostname-Kombination enth¨alt, von wo aus Sie sich verbinden wollen; danach f¨uhren
Sie mysqladmin flush-privileges aus. Wenn Sie nicht MySQL-Version 3.22 laufen
lassen und die IP-Nummer oder den Hostnamen der Maschine nicht kennen, von der
aus Sie sich verbinden, sollten Sie einen Eintrag mit ’%’ als Host-Spaltenwert in die
user-Tabelle einf¨ugen und mysqld mit der --log-Option auf der Servermaschine neu
starten. Nach dem Verbinden von der Client-Maschine aus zeigt die Information im
MySQL-Log an, wie Sie sich wirklich verbunden haben. (Ersetzen Sie danach ’%’ im
user-Tabelleneintrag durch den tats¨achlichen Hostnamen, der im Log steht. Ansonsten
erhalten Sie ein System, das unsicher ist.)
Ein weiterer Grund f¨ur diesen Fehler unter Linux kann sein, dass Sie eine Bin¨arversion
von MySQL benutzen, die mit einer anderen glibc-Version kompiliert wurde als die, die
Sie benutzen. In diesem Fall sollten Sie entweder die glibc Ihres Betriebssystems aktu-
alisieren oder die Quellversion von MySQL herunter laden und sie selbst kompilieren.
Ein Quell-RPM l¨aßt sich normalerweise sehr einfach kompilieren und installieren, daher
stellt dies kein großes Problem dar.
• Wenn Sie eine Fehlermeldung erhalten, in der der Hostname nicht angezeigt wird oder
eine IP-Nummer ist, obwohl Sie sich mit einem Hostnamen versuchen zu verbinden:
shell> mysqladmin -u root -pxxxx -h ein-hostname ver
Access denied f¨ur user: ’root@’ (Using password: YES)
bedeutet das, dass MySQL einen Fehler beim Au߬osen der IP zu einem Hostnamen er-
hielt. In diesem Fall k¨onnen Sie mysqladmin flush-hosts ausf¨uhren, um den internen
DNS-Cache zu flushen. Siehe Abschnitt 6.5.5 [DNS], Seite 360.
Einige dauerhafte L¨osungen sind:
− Versuchen Sie herauszufinden, was mit Ihrem DNS-Server nicht funktioniert, und
beheben Sie das Problem.
− Geben Sie in den MySQL-Berechtigungstabellen IP-Nummern statt Hostnamen
an.
Comentarios a estos manuales