Попередження MySQL «Не вдалося вирішити IP-адресу»


36

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

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

Я перевірив, і пошук DNS працює нормально, і більшість цих IP-адрес із Китаю.

Я планую обмежити доступ до порту 3306 на брандмауері, проте ви можете, будь ласка, допомогти мені зрозуміти, що вони намагаються зробити. Вони просто намагаються підключитися до сервера MySQL. Де я можу шукати ще кілька деталей.

Спасибі

Відповіді:


48

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

Звичайно, немає жодних обмежень у створенні зворотних пошукових запитів, тому я з задоволенням можу попросити свого провайдера встановити зворотний пошук для моєї IP-адреси, google.comякщо я хочу ... або example.comякщо мені трапляється знати, що це користувачі у вашій базі даних . Це не дозволить мені ввійти, оскільки MySQL здійснює пошук в прямому напрямку на поверненому домені, щоб переконатися, що він відповідає тій самій IP-адресі, що підключається.

Ви можете вимкнути це за допомогою skip_name_resolveу своєму my.cnf. Для цього є багато вагомих причин .

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

Також у вас є зловмисні зловмисники з Китаю, які намагаються жорстоко пробитися у вашу базу даних. Це має бути вашим головним пріоритетом.


1
чи може бути якась проблема для localhost ?
Малайська М

Я не думаю, що там є отвір у захисті, тому що якщо зворотний пошук для певної IP-адреси вирішено на localhost, MySQL все одно зробить пошук вперед, localhostщоб переконатися, що він відповідає оригінальній IP-адресі. Однак, як і у всіх ситуаціях, пов'язаних із безпекою, не просто довіряйте мені з цього приводу. І все ж краще вимкнути розв’язання імен у вашому конфігурації.
Ладададада

13

Я думаю, що це дуже погана ідея викривати ваші сервери баз даних безпосередньо в Інтернеті.

Якщо ви реплікуєте на віддалений хост і вам потрібен доступ до Інтернету, щоб досягти цього, я пропоную вам встановити VPN між двома мережами і зв’язати ваші MySQL-сервери для прослуховування лише локальної мережі.

Якщо обидва ваших хоста знаходяться в одній локальній мережі, ви будете безпечно прив’язувати ваші mysql-сервери до цієї мережі.


1

Щойно це потрапило і на 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політику від бази даних, коли проблеми з вирішенням закінчаться.


0

Під час підключення до 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.


Більше року тому, але вам довелося перезапустити mysql? Це не спрацювало для мене.
Ejoso

Ви б цього не зробили, оскільки файлом hosts керується на сервері клієнт, а не mysql.
leeman24
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.