Estoy intentando conectarme a mysql usando el comando
mysql -h 127.0.0.1
Me sale el error
ERROR 1045 (28000): Access denied for user 'root'@'mydomain.com' (using password: NO)
¿Por qué se convierte 127.0.0.1 a mi nombre de dominio y cómo puedo solucionarlo?
Sin embargo, funciona si no especifico un host (y por extensión, si se especifica 'localhost').
Editar: Parece que se resuelve en el nombre de dominio cuando se usa TCP, por lo que también falla cuando se usa
mysql -h localhost --protocol=TCP
Editar2: Cuando uso skip-name-resolve obtengo un resultado similar excepto que mydomain.com
se reemplaza por x.x.x.x
cuál es la IP pública de mydomain.com
.
Respuesta1
Me enmascaré para todos los paquetes externos (incluido lo). Eliminar/editar las iptable -t nat POSTROUTING
reglas solucionó el problema.
Respuesta2
Lo más probable es que esto se deba a una entrada en el archivo de hosts.
Respuesta3
¿Quizás mysql esté escuchando solo en su IP pública y no en 0.0.0.0?
Respuesta4
1) Verifique /etc/hosts y asegúrese de que 127.0.0.1 apunte solo a localhost y no a mydomain.com. mydomain.com debe estar asociado con la dirección IP real del servidor y no con localhost.localdomain.
2) También parece que ha configurado la contraseña para root en su instancia de MySQL (en realidad, esto es algo bueno). Recomiende agregar el modificador "-p" a su inicio de sesión para que se vea así:
mysql -h localhost -p
Luego se le pedirá que ingrese la contraseña de root. Espero que esto ayude.