Spec-Zone.ru › MySQL 8.4

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-адреса в имя хоста для 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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/performance-schema-host-cache-table.html

Spec-Zone.ru

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