Ответить на комментарий
Является ли DNS Ахиллесовой пятой вашего сервера MySQL?
Опубликовано vladimir в Вс, 03/22/2009 - 15:00Оригинал: Baron Schwartz, Percona
Перевод: Vladimir Rusinov, Murano Software
Установлена ли у вас опция 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-запросов.
За более подробной информацией обращайтесь к документации MySQL
