Spec-Zone.ru › MySQL 5.7

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

  • 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-адрес клиента. Основание, по которому не происходит такого типа сопоставления, см. в Разделе 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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/performance-schema-host-cache-table.html

Spec-Zone.ru

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