25.12.16.1 Таблица host_cache
Сервер MySQL поддерживает кэш хостов в оперативной памяти, содержащий информацию о имени и IP-адресе клиента, используемый для избежания запросов к системе доменных имён (DNS). Таблица host_cache предоставляет доступ к содержимому этого кэша. Системная переменная host_cache_size управляет размером кэша хостов, а также размером таблицы host_cache. Для получения информации об операциях и конфигурации кэша хостов см. Раздел 5.1.11.2, «Запросы к DNS и кэш хостов».
Поскольку таблица host_cache предоставляет доступ к содержимому кэша хостов, к ней можно обратиться с помощью операторов SELECT. Это может помочь в диагностике причин проблем с подключением. Для работы с этой таблицей необходимо включить Performance Schema, в противном случае таблица будет пустой.
Таблица host_cache содержит следующие столбцы:
-
IPIP-адрес клиента, подключившегося к серверу, представленный в виде строки.
-
HOSTРазрешённое имя хоста DNS для этого IP-адреса клиента или
NULL, если имя неизвестно. -
HOST_VALIDATEDУдалось ли выполнить успешное разрешение DNS для перевода 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-адрес клиента. Основание, по которому не происходит такого типа сопоставления, см. в Разделе 6.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Количество ошибок, вызванных превышением квот на подключения на пользователя. См. Раздел 6.2.16, «Установка ограничений ресурсов учётной записи».
-
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORSКоличество ошибок, вызванных превышением квот на подключения на пользователя в час. См. Раздел 6.2.16, «Установка ограничений ресурсов учётной записи».
-
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.
Разрешено выполнение TRUNCATE TABLE для таблицы host_cache. Требуется привилегия DROP для данной таблицы. Обнуление таблицы очищает кэш хостов, что оказывает описанное в Разделе о сбросе кэша хостов влияние.
© 2025 Oracle
Licensed under the GPLv2 License.