Назад | Перейти на главную страницу

Предупреждение MySQL «IP-адрес не может быть определен»

У меня есть установка MySQL Master / Slave, и я заметил следующие предупреждения в файлах журнала mysql на обоих серверах:

[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known

Я проверил, поиск DNS работает нормально, и большинство этих IP-адресов из Китая.

Я планирую ограничить доступ к порту 3306 на брандмауэре, однако не могли бы вы помочь мне понять, что они пытаются сделать. Они просто пытаются подключиться к серверу MySQL. Где я могу поискать более подробную информацию.

Спасибо

Когда вы создаете пользователя MySQL username@example.com MySQL должен выполнять обратный поиск по каждому IP-адресу, подключенному к нему, чтобы определить, являются ли они частью example.com.

Конечно, нет никаких ограничений на создание обратного поиска, поэтому я с радостью могу попросить своего провайдера установить обратный поиск для моего IP-адреса как google.com если я хочу ... или example.com если я знаю, что это то, что есть у пользователей в вашей базе данных. Это не позволит мне войти, поскольку MySQL затем выполняет прямой поиск в возвращенном домене, чтобы убедиться, что он соответствует тому же IP-адресу, который подключается.

Вы можете выключить это с помощью skip_name_resolve в твоем my.cnf. Для этого есть много веских причин.

Причина, по которой вы получаете эту ошибку, заключается в том, что рассматриваемый IP-адрес вообще не имеет обратного просмотра.

У вас также есть злоумышленники из Китая, пытающиеся взломать вашу базу данных. Это должно быть вашим главным приоритетом.

Я думаю, что это очень-очень плохая идея - выставлять ваши серверы баз данных прямо в Интернете.

Если вы выполняете репликацию на удаленный хост и для этого вам нужен доступ в Интернет, я предлагаю вам настроить VPN между двумя сетями и привязать ваши серверы MySQL к прослушиванию только локальной сети.

Если оба ваших хоста находятся в одной локальной сети, вы можете безопасно привязать свои серверы mysql к этой сети.

Просто попался на Amazon RDS. Я хотел подключиться только к моему тестовому экземпляру базы данных (следующее определенно не рекомендуется для производственных баз данных):

Группы безопасности в Amazon RDS работают немного иначе, чем обычные правила брандмауэра для инстансов EC2. Если вы открываете порт MySQL для определенного IP-адреса, этот IP-адрес должен быть распознан вашим сервером MySQL. В противном случае соединение отклоняется. Временное решение - создать новую группу безопасности, т.е. anyone_can_connect_to_mysql с помощью всего лишь одного элемента - разрешите входящее соединение MySQL / Aurora в любом месте из Интернета и прикрепите эту группу безопасности к своей базе данных.

Inbound
-----------------------------------------
| MYSQL/Aurora | TCP | 3306 | 0.0.0.0/0 |
-----------------------------------------

Это удаляет проверку IP из клиентских подключений, поэтому вы можете свободно подключаться. Не забудьте отсоединить anyone_can_connect_to_mysql политики из базы данных после того, как устранены проблемы с разрешением.

При удаленном подключении к Mysql возникла ошибка. У меня было это предупреждение в /var/log/mysqld.log:

[Warning] IP address 'X.X.X.X' could not be resolved: Temporary failure in name resolution

Я только что добавил эту строку в /etc/hosts файл:

X.X.X.X some_name

Задача решена! без использования skip-name-resolve, это вызвало некоторые ошибки в моем локальном приложении при подключении к mysql.