Вопрос имени хоста клиентского соединения 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)