MySQL skip_name_resolve参数的设置

2021/5/12 19:27:57

本文主要是介绍MySQL skip_name_resolve参数的设置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Skip_name_resolve

Dynamic No
Default Value OFF

默认值是off,也就是在检查客户端连接时在第一次要解析主机名(如果有开启DNS服务器,则做 “ IP->hostname & hostname->IP反向解析 ”;如没有开启DNS,则不做解析);

连接成功则将信息存储在host cache中。

Host Cache Operation

MySQL服务用host cache来保存非本地TCP连接,不保存127.0.0.1、::1和Unix socket创建的连接。

>由于保存了IP-to-Host列表,MySQL服务避免每次去做DNS检查,只在第一次做解析和反解析

>host cache保存着一些连接错误信息,max_connect_errors决定了连接错误次数后锁定该IP,锁定后需要 Flushing the Host Cache来解除

host cache的行记录如下:

1.当首次TCP客户端连接通过一个给定的地址访问MySQL服务,一行新的cache记录被创建,记录IP,host name,client 查找检验标识。初始,host name是null,标识是false,此条目还用于

   后续同样IP的客户端连接

2.如果检验标识是false,MySQL服务尝试IP-to-host name-to-IP DNS这样的解决方式。如果成功则更新标识为true。如果尝试的解决方式不成功,则分永久和短暂,如果永久失败则置host

   name为null,flag为true;如果是短暂失败则保持host name为null,flag为false。

设置host cache的大小

[mysqld]
host_cache_size=200

当连接失败达到max_connect_error设置的次数,改host将被锁定

[mysqld]
max_connect_errors=10000

客户端连接

1.一个应用的新建的客户端连接过来,MySQL服务首先检查host name是否在host cache,如果是,服务决定是否继续提供请求看该主机是否被锁住;

2.如果客户端连接的不在cache,服务试图去解析host name,尝试IP-to-host name-to-IP DNS这样的解决方式,如果一切正常则存储信息到host cache;

3.如果cache满了,则最近最少用的记录则被丢弃

 



这篇关于MySQL skip_name_resolve参数的设置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程