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

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

5 ответов5

2

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

0

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

0

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

0

Я не уверен, что понимаю ваш вопрос, но 127.0.0.1 является стандартным адресом обратной связи. SO, если ваш хост имеет этот IP: 192.168.0.1 Тогда 192.168.0.1 = 127.0.0.1 = localhost

0

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

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

mysql -h localhost -p

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .