У меня есть установка 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.