Mysql löst 127.0.0.1 in Hostnamen auf

Mysql löst 127.0.0.1 in Hostnamen auf

Ich versuche, eine Verbindung zu MySQL herzustellen, indem ich den Befehl

mysql -h 127.0.0.1

Es kommt mit dem Fehler

ERROR 1045 (28000): Access denied for user 'root'@'mydomain.com' (using password: NO)

Warum wird 127.0.0.1 in meinen Domänennamen umgewandelt und wie kann ich das beheben?

Es funktioniert jedoch, wenn ich keinen Host angebe (und dementsprechend, wenn „localhost“ angegeben ist).

Bearbeiten: Es scheint, dass es bei Verwendung von TCP in den Domänennamen aufgelöst wird, daher schlägt es auch bei Verwendung von fehl

mysql -h localhost --protocol=TCP

Bearbeiten: Wenn ich „skip-name-resolve“ verwende, erhalte ich eine ähnliche Ausgabe, außer dass mydomain.comdurch ersetzt wird . x.x.x.xDies ist die öffentliche IP von mydomain.com.

Antwort1

Ich hatte Masquerading für alle externen Pakete (auch auf lo). Das Entfernen/Bearbeiten der iptable -t nat POSTROUTINGRegeln hat das Problem behoben.

Antwort2

Dies wird höchstwahrscheinlich durch einen Eintrag in der Hosts-Datei verursacht.

Antwort3

Vielleicht lauscht MySQL nur auf Ihrer öffentlichen IP und nicht auf 0.0.0.0?

Antwort4

1) Überprüfen Sie /etc/hosts und stellen Sie sicher, dass 127.0.0.1 nur auf localhost und nicht auf mydomain.com verweist. mydomain.com sollte mit der tatsächlichen IP-Adresse des Servers und nicht mit localhost.localdomain verknüpft sein.

2) Es sieht auch so aus, als hätten Sie das Passwort für root auf Ihrer MySQL-Instanz festgelegt (eigentlich ist das eine gute Sache). Wir empfehlen, den Schalter „-p“ zu Ihrem Login hinzuzufügen, damit es wie folgt aussieht:

mysql -h localhost -p

Sie werden dann aufgefordert, das Passwort für root einzugeben. Ich hoffe, das hilft.

verwandte Informationen