Является ли DNS Ахиллесовой пятой вашего сервера MySQL?

Установлена ли у вас опция skip_name_resolve в my.cnf? Если нет, подумайте об этом. DNS работает хорошо то тех пор пока что-то не ломается. Не позвольте сломаному DNS сломать вам сервер MySQL.

Действительно ли вам нужно ограничивать доступ к MySQL по именам хостов? Если нет, вам определенно стоит отключить эту функцию системы аутентификации MySQL. Вы не можете знать когда DNS-сервер вашено провайдера (или даже ваш собственный) захочет отдохнуть. Но когда это случается, MySQL загадочным образом не отказывает в коннекте пользователям, и очень сложно понять в чем же причина.

Возможен и другой вариант: DNS не ломается, но становится медленнее. Не настолько медленнее чтобы вы заметили это, но достаточно для того, чтобы аутентификация в MySQL вызывала проблемы.

Я встречался с обоими сценариями при работе с клиентами.

Чтобы не делать два DNS запроса при каждой попытке аутентификации, вам необоходимо просто добавить «skip_name_resolve» в my.cnf и перезапутить MySQL. Но перед этим выполните следующую команду:

mysql> SELECT user, host FROM mysql.user
       -> WHERE host <> 'localhost' AND host RLIKE '[a-z]';
+------+--------+
| user | host   |
+------+--------+
| foo  | my.com |
+------+--------+


Любые хосты которые вы тут увидете необходимо преобразовать в ip-адреса, диапазоны ip-адресов или 'localhost', иначе они не смогут пройти аутентификацию после выключения dns-запросов.

0 комментариев

Оставить комментарий

Комментировать при помощи:
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.