29.12.22.3 Таблица host_cache
Сервер MySQL поддерживает кэш хостов в оперативной памяти, содержащий информацию об имени и IP-адресе клиента, используемый для избежания запросов к системе доменных имён (DNS). Таблица host_cache раскрывает содержимое этого кэша. Переменная системы host_cache_size управляет размером кэша хостов, а также размером таблицы host_cache. Для получения операционной и конфигурационной информации о кэше хостов см. Раздел 7.1.12.3, «Запросы к DNS и кэш хостов».
Поскольку таблица host_cache раскрывает содержимое кэша хостов, её можно просмотреть с помощью операторов SELECT. Это может помочь в диагностике причин проблем с подключением.
Таблица host_cache имеет следующие столбцы:
-
IPIP-адрес клиента, подключившегося к серверу, представленный в виде строки.
-
HOSTРазрешенное имя хоста DNS для этого IP-адреса клиента или
NULL, если имя неизвестно. -
HOST_VALIDATEDБыла ли успешно выполнена разрешение DNS преобразования IP-адреса в имя хоста для IP-адреса клиента. Если
HOST_VALIDATEDравноYES, столбецHOSTиспользуется в качестве имени хоста, соответствующего IP-адресу, чтобы избежать дополнительных запросов к DNS. ПокаHOST_VALIDATEDравноNO, разрешение DNS выполняется для каждой попытки подключения, пока не будет получен действительный результат или постоянная ошибка. Эта информация позволяет серверу избегать кэширования плохих или отсутствующих имён хостов во время временных сбоев DNS, что негативно повлияло бы на клиентов. -
SUM_CONNECT_ERRORSКоличество ошибок подключения, которые считаются «блокирующими» (оцениваются по отношению к переменной системы
max_connect_errors). Подсчитываются только ошибки протокола рукопожатия, и только для хостов, которые прошли проверку (HOST_VALIDATED = YES).После того, как
SUM_CONNECT_ERRORSдля данного хоста достигнет значенияmax_connect_errors, новые подключения с этого хоста блокируются. ЗначениеSUM_CONNECT_ERRORSможет превысить значениеmax_connect_errors, потому что несколько попыток подключения с одного хоста могут происходить одновременно, пока хост не заблокирован. Любые или все из них могут завершиться неудачей, независимо увеличивая значениеSUM_CONNECT_ERRORS, возможно, превысив значениеmax_connect_errors.Предположим, что
max_connect_errorsравно 200, аSUM_CONNECT_ERRORSдля данного хоста равно 199. Если 10 клиентов пытаются подключиться с этого хоста одновременно, ни один из них не заблокирован, потому что значениеSUM_CONNECT_ERRORSне достигло 200. Если для пяти клиентов произойдут ошибки блокировки,SUM_CONNECT_ERRORSувеличивается на единицу для каждого клиента, в результате значениеSUM_CONNECT_ERRORSстановится 204. Другие пять клиентов успешно подключаются и не блокируются, потому что значениеSUM_CONNECT_ERRORS, когда начались их попытки подключения, не достигло 200. Новые подключения с хоста, которые начинаются после того, какSUM_CONNECT_ERRORSдостигнет 200, блокируются. -
COUNT_HOST_BLOCKED_ERRORSКоличество подключений, которые были заблокированы, потому что
SUM_CONNECT_ERRORSпревысило значение переменной системыmax_connect_errors. -
COUNT_NAMEINFO_TRANSIENT_ERRORSКоличество временных ошибок при разрешении DNS преобразования IP-адреса в имя хоста.
-
COUNT_NAMEINFO_PERMANENT_ERRORSКоличество постоянных ошибок при разрешении DNS преобразования IP-адреса в имя хоста.
-
COUNT_FORMAT_ERRORSКоличество ошибок формата имени хоста. MySQL не выполняет сопоставление значений столбца
Hostв таблице системных переменныхmysql.userс именами хостов, у которых одно или несколько начальных компонентов имени полностью цифровые, такие как1.2.example.com. Вместо этого используется IP-адрес клиента. Для обоснования того, почему не выполняется такой тип сопоставления, см. Раздел 8.2.4, «Указание имён учётных записей». -
COUNT_ADDRINFO_TRANSIENT_ERRORSКоличество временных ошибок при обратном разрешении DNS преобразования имени хоста в IP-адрес.
-
COUNT_ADDRINFO_PERMANENT_ERRORSКоличество постоянных ошибок при обратном разрешении DNS преобразования имени хоста в IP-адрес.
-
COUNT_FCRDNS_ERRORSКоличество ошибок подтверждения обратного DNS преобразования. Эти ошибки возникают, когда разрешение DNS преобразования IP-адреса в имя хоста в IP-адрес генерирует IP-адрес, который не соответствует IP-адресу клиента-источника.
-
COUNT_HOST_ACL_ERRORSКоличество ошибок, возникающих из-за того, что ни одному пользователю не разрешено подключаться с хоста клиента. В таких случаях сервер возвращает ошибку и даже не запрашивает имя пользователя или пароль.
-
COUNT_NO_AUTH_PLUGIN_ERRORSКоличество ошибок из-за запросов недоступного плагина аутентификации. Плагин может быть недоступен, если, например, он никогда не загружался или попытка загрузки завершилась неудачей.
-
COUNT_AUTH_PLUGIN_ERRORSКоличество ошибок, сообщённых плагинами аутентификации.
Плагин аутентификации может сообщать разные коды ошибок, чтобы указать основную причину сбоя. В зависимости от типа ошибки увеличивается один из этих столбцов:
COUNT_AUTHENTICATION_ERRORS,COUNT_AUTH_PLUGIN_ERRORS,COUNT_HANDSHAKE_ERRORS. Новые коды возврата являются необязательным расширением существующего API плагина. Неизвестные или непредвиденные ошибки плагина подсчитываются в столбцеCOUNT_AUTH_PLUGIN_ERRORS. -
COUNT_HANDSHAKE_ERRORSКоличество ошибок, обнаруженных на уровне протокола канала связи.
-
COUNT_PROXY_USER_ERRORSКоличество ошибок, обнаруженных при делегировании пользователя A прокси-серверу, к пользователю B, которого не существует.
-
COUNT_PROXY_USER_ACL_ERRORSКоличество ошибок, обнаруженных при делегировании пользователя A прокси-серверу, к пользователю B, который существует, но для которого A не имеет привилегии
PROXY. -
COUNT_AUTHENTICATION_ERRORSКоличество ошибок, вызванных неудачной аутентификацией.
-
COUNT_SSL_ERRORSКоличество ошибок, связанных с проблемами SSL.
-
COUNT_MAX_USER_CONNECTIONS_ERRORSКоличество ошибок, вызванных превышением квот подключений на пользователя. См. Раздел 8.2.21, «Настройка лимитов ресурсов учётной записи».
-
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORSКоличество ошибок, вызванных превышением квот подключений на пользователя в час. См. Раздел 8.2.21, «Настройка лимитов ресурсов учётной записи».
-
COUNT_DEFAULT_DATABASE_ERRORSКоличество ошибок, связанных с базой данных по умолчанию. Например, база данных не существует или у пользователя нет привилегий для доступа к ней.
-
COUNT_INIT_CONNECT_ERRORSКоличество ошибок, вызванных сбоями выполнения инструкций в значении переменной системы
init_connect. -
COUNT_LOCAL_ERRORSКоличество ошибок, локальных для реализации сервера и не связанных с сетью, аутентификацией или авторизацией. Например, ситуации с недостатком памяти относятся к этой категории.
-
COUNT_UNKNOWN_ERRORSКоличество других, неизвестных ошибок, не учтённых другими столбцами в этой таблице. Этот столбец предназначен для будущего использования в случае необходимости отчётности о новых условиях ошибки и при сохранении обратной совместимости и структуры таблицы
host_cache. -
FIRST_SEENОтметка времени первой попытки подключения, увиденной от клиента в столбце
IP. -
LAST_SEENОтметка времени последней попытки подключения, увиденной от клиента в столбце
IP. -
FIRST_ERROR_SEENОтметка времени первой ошибки, увиденной от клиента в столбце
IP. -
LAST_ERROR_SEENОтметка времени последней ошибки, увиденной от клиента в столбце
IP.
Таблица host_cache имеет следующие индексы:
Первичный ключ по (
IP)Индекс по (
HOST)
TRUNCATE TABLE разрешено для таблицы host_cache. Требуется привилегия DROP для таблицы. Обнуление таблицы очищает кэш хостов, что имеет последствия, описанные в Очистка кэша хостов.
© 2025 Oracle
Licensed under the GPLv2 License.