• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • host_cache表

    host_cache表提供对主机缓存内容的访问,该缓存包含客户端主机名和IP地址信息,用于避免域名系统(DNS)查找。所述host_cache_size系统变量控制主机高速缓存的大小,以及所述的尺寸host_cache暴露该高速缓存内容表。有关主机缓存的操作和配置信息,请参见“ DNS查找优化和主机缓存”。

    由于该host_cache表公开了主机缓存的内容,因此可以使用SELECT语句对其进行检查。这可以帮助您诊断连接问题的原因。必须启用性能模式,否则此表为空。

    host_cache表包含以下列:

    • IP

      连接到服务器的客户端的IP地址,以字符串形式表示。

    • HOST

      该客户端IP的已解析DNS主机名,或者NULL名称未知。

    • HOST_VALIDATED

      是否成功为客户端IP执行了IP到主机名到IP的DNS解析。如果HOST_VALIDATEDYES,则该HOST列用作对应于IP的主机名,这样可以避免对DNS的其他调用。在HOST_VALIDATEDis期间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

      IP到主机名DNS解析期间的瞬时错误数。

    • COUNT_NAMEINFO_PERMANENT_ERRORS

      IP到主机名DNS解析期间的永久错误数。

    • COUNT_FORMAT_ERRORS

      主机名格式错误数。MySQL不会Hostmysql.user系统表中的列值与主机名进行匹配,主机名的一个或多个初始组成部分完全是数字的,例如1.2.example.com。而是使用客户端IP地址。有关为什么不进行这种类型的匹配的基本原理,请参见“账户权限控制”。

    • COUNT_ADDRINFO_TRANSIENT_ERRORS

      主机名到IP反向DNS解析期间的瞬时错误数。

    • COUNT_ADDRINFO_PERMANENT_ERRORS

      主机名到IP反向DNS解析期间的永久错误数。

    • COUNT_FCRDNS_ERRORS

      前向确认反向DNS错误的数量。当IP到主机名到IP DNS解析生成的IP地址与客户端原始IP地址不匹配时,会发生这些错误。

    • COUNT_HOST_ACL_ERRORS

      由于不允许用户从客户端主机进行连接而发生的错误数。在这种情况下,服务器返回ER_HOST_NOT_PRIVILEGED,甚至不询问用户名或密码。

    • COUNT_NO_AUTH_PLUGIN_ERRORS

      由于请求不可用的身份验证插件而导致的错误数。例如,如果插件从未加载或加载尝试失败,则该插件可能不可用。

    • COUNT_AUTH_PLUGIN_ERRORS

      身份验证插件报告的错误数。

      身份验证插件可以报告不同的错误代码,以指示失败的根本原因。根据错误的类型,这些列中的一个递增:COUNT_AUTHENTICATION_ERRORSCOUNT_AUTH_PLUGIN_ERRORSCOUNT_HANDSHAKE_ERRORS。新的返回码是对现有插件API的可选扩展。未知或意外的插件错误将计入该COUNT_AUTH_PLUGIN_ERRORS列。

    • COUNT_HANDSHAKE_ERRORS

      在有线协议级别检测到的错误数。

    • COUNT_PROXY_USER_ERRORS

      将代理用户A代理给不存在的另一个用户B时检测到的错误数。

    • COUNT_PROXY_USER_ACL_ERRORS

      将代理用户A代理给确实存在但A不具有PROXY特权的另一个用户B时检测到的错误数。

    • COUNT_AUTHENTICATION_ERRORS

      身份验证失败引起的错误数。

    • COUNT_SSL_ERRORS

      SSL问题导致的错误数。

    • COUNT_MAX_USER_CONNECTIONS_ERRORS

      超出每个用户的连接配额导致的错误数。请参见“设置帐户资源限制”。

    • COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS

      超出每小时每用户连接配额导致的错误数。请参见“设置帐户资源限制”。

    • 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)上的索引

    FLUSH HOSTS声明,TRUNCATE TABLE host_cache声明,和中mysqladmin嵌入式主机命令有同样的效果:他们清除主机缓存,从删除所有行host_cache暴露出缓存目录,并解除封锁的任何主机(见第B.4.2.5,“主机'host_name'被阻止”)。FLUSH HOSTSmysqladmin flush-hosts需要RELOAD特权。TRUNCATE TABLE需要DROPhost_cache表的特权。