Вопрос имени хоста клиентского соединения mysql

У меня есть вопрос, на который я не могу найти ответ. Я пытаюсь подключиться к удаленной базе данных. Я набираю следующее в моей оболочке Ubuntu:

mysql -u test -h mysql.domain.com -p

mysql запрашивает мой пароль и затем выводит следующее:

ERROR 1045 (28000): Access denied for user 'test'@'externalit.domain.com' (using password: YES)

Проблема в том, что я не на externalit. Я на совершенно другом хосте. Я думаю, что сервер, на котором я работаю, был клонирован из externalit, но я не настроил сервер. Мой вопрос: есть ли в mysql файл conf или другой параметр, который может автоматически вводить неправильное имя хоста? Могу ли я изменить это?

3 ответа

Решение

Это имя, которое, по мнению сервера, соответствует вашему IP-адресу. Это может быть сделано с настройкой DNS (он пытается использовать обратный DNS) или что-то в файле /etc/host (сопоставление этого IP с этим хостом).

Вы должны убедиться, что обратный DNS на машине, с которой вы подключаетесь, совпадает с адресом пользователя. Если вы используете общий IP-адрес или не можете управлять обратным DNS, измените разрешения для пользователя на "test" @ "%", это позволит любому пользователю с любого IP-адреса подключиться, если у него правильная пара имя пользователя / пароль., конечно, это открывает некоторые проблемы с безопасностью.

Вы можете запретить mysql выполнять обратный поиск, а затем использовать 'test'@'123.123.123' в качестве пользователя / хоста, но если у вас нет фиксированного IP-адреса, который может вызвать проблемы.

ОКРУГ КОЛУМБИЯ

Попробуйте добавить опцию протокола:

mysql -u test -h mysql.domain.com --protocol=tcp -p

и / или попробуйте добавить порт явно:

mysql -u test -h mysql.domain.com -P3306 --protocol=tcp -p

(см.: http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html)

Другие вопросы по тегам