Estou tentando me conectar ao mysql usando o comando
mysql -h 127.0.0.1
Aparece o erro
ERROR 1045 (28000): Access denied for user 'root'@'mydomain.com' (using password: NO)
Por que 127.0.0.1 está sendo convertido em meu nome de domínio e como posso corrigir isso?
No entanto, funciona se eu não especificar um host (e por extensão, se 'localhost' for especificado).
Editar: Parece que resolve para o nome de domínio ao usar TCP, então também falha ao usar
mysql -h localhost --protocol=TCP
Editar2: Quando uso skip-name-resolve, obtenho uma saída semelhante, exceto que mydomain.com
é substituído por x.x.x.x
which is the public IP of mydomain.com
.
Responder1
Eu tinha mascaramento para todos os pacotes externos (inclusive em lo). Remover/editar as iptable -t nat POSTROUTING
regras corrigiu o problema.
Responder2
Provavelmente isso é causado por uma entrada no arquivo hosts.
Responder3
Talvez o mysql esteja escutando apenas no seu ip público e não no 0.0.0.0?
Responder4
1) Verifique /etc/hosts e certifique-se de que 127.0.0.1 aponta apenas para localhost e não para mydomain.com. mydomain.com deve estar associado ao endereço IP real do servidor e não ao localhost.localdomain.
2) Também parece que você definiu a senha para root em sua instância mysql (na verdade, isso é uma coisa boa). Recomendamos adicionar a opção "-p" ao seu login para que fique assim:
mysql -h localhost -p
Em seguida, você será solicitado a inserir a senha do root. Espero que isto ajude.