当MySQL客户端连接到MySQL服务器(这个过程是mysqld),mysqld创建处理请求一个新的线程,线程首先检查是否主机名是在主机名缓存。如果不是,线程试图解析主机名。
如果系统是线程安全的,gethostbyaddr_r gethostbyname_r()和()被称为执行主机名解析;
如果系统不支持线程安全调用,螺纹锁互斥调用gethostbyname和gethostbyaddr()()。在这种情况下,第一个线程解锁互斥锁之前,其他任何线程都不能解析,不在主机名缓存主机名。
使用-跳过名称解决选项启动mysqld禁用DNS主机名查找。在这一点上,只有在MySQL授权表中的IP地址可以使用,和主机名不能用。
如果DNS解析速度慢,包括许多主机,它可以通过禁用DNS查找或增加host_cache_size定义提高性能(默认值:128)编译mysqld --跳过名字解析。
该服务器由--skip-host-cache缓存选项来禁用主机名缓存启动。清除主机名称缓存,执行语句或执行mysqladmin冲洗主机冲洗主机命令。
如果你想完全禁止TCP / IP连接,启动mysqld的——跳过网络选项。