Spec-Zone.ru › MySQL 9.2

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 содержит следующие столбцы:

  • IP

    IP-адрес клиента, подключившегося к серверу, представленный в виде строки.

  • 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-адрес клиента. Подробное обоснование того, почему не происходит такое сопоставление, см. в разделе 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_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

    Количество ошибок, обнаруженных на уровне протокола связи.

END_OF_DOCUMENT_MARKER
  • COUNT_PROXY_USER_ERRORS

    Количество ошибок, обнаруженных при проксировании пользователя А на другого пользователя В, который не существует.

  • COUNT_PROXY_USER_ACL_ERRORS

    Количество ошибок, обнаруженных при проксировании пользователя А на другого пользователя В, который существует, но для которого у А нет 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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/performance-schema-host-cache-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API