Mysql преобразует 127.0.0.1 в имя хоста

Mysql преобразует 127.0.0.1 в имя хоста

Я пытаюсь подключиться к MySQL с помощью команды

mysql -h 127.0.0.1

Выдает ошибку

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

Почему 127.0.0.1 преобразуется в мое доменное имя и как это исправить?

Однако это работает, если я не указываю хост (и, соответственно, если указан «localhost»).

Редактировать: Кажется, при использовании TCP он разрешается в доменное имя, поэтому при использовании также происходит сбой

mysql -h localhost --protocol=TCP

Редактировать2: Когда я использую skip-name-resolve, я получаю похожий вывод, за исключением того, mydomain.comчто он заменяется на x.x.x.x, который является публичным IP-адресом mydomain.com.

решение1

У меня был маскарадинг для всех внешних пакетов (включая lo). Удаление/редактирование iptable -t nat POSTROUTINGправил исправило проблему.

решение2

Скорее всего, это вызвано записью в файле hosts.

решение3

Может быть, mysql прослушивает только ваш публичный IP, а не 0.0.0.0?

решение4

1) Проверьте /etc/hosts и убедитесь, что 127.0.0.1 указывает только на localhost, а не на mydomain.com. mydomain.com должен быть связан с фактическим IP-адресом сервера, а не с localhost.localdomain.

2) Также похоже, что вы установили пароль для root на вашем экземпляре mysql (на самом деле это хорошо). Рекомендую добавить ключ "-p" к вашему логину, чтобы он выглядел так:

mysql -h локальный хост -p

Затем вам будет предложено ввести пароль для root. Надеюсь, это поможет.

Связанный контент