MySQL DNS的使用过程详细分析
2012-11-16 00:00
567 查看
当 mysql 客户端连接 mysql 服务器 (进程为:mysqld),mysqld 会创建一个新的线程来处理该请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名。
如果系统是线程安全的,则 gethostbyaddr_r () 和 gethostbyname_r() 被调用,来执行主机名解析;
如果系统不支持线程安全调用,则线程会锁定一个互斥体并调用 gethostbyaddr() 和 gethostbyname() 。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。
通过 --skip-name-resolve 选项启动 mysqld 来禁用DNS主机名查找。此时,只可以使用 MySQL 授权表中的 IP 地址,不能使用主机名。
如果 DNS 解析很慢且包括许多主机,通过用--skip-name-resolve 禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能;
通过 --skip-host-cache 选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行 FLUSH HOSTS 语句或执行 mysqladmin flush-hosts 命令。
如果要完全禁止 TCP/IP 连接,用 --skip-networking 选项启动 mysqld 。
如果系统是线程安全的,则 gethostbyaddr_r () 和 gethostbyname_r() 被调用,来执行主机名解析;
如果系统不支持线程安全调用,则线程会锁定一个互斥体并调用 gethostbyaddr() 和 gethostbyname() 。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。
通过 --skip-name-resolve 选项启动 mysqld 来禁用DNS主机名查找。此时,只可以使用 MySQL 授权表中的 IP 地址,不能使用主机名。
如果 DNS 解析很慢且包括许多主机,通过用--skip-name-resolve 禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能;
通过 --skip-host-cache 选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行 FLUSH HOSTS 语句或执行 mysqladmin flush-hosts 命令。
如果要完全禁止 TCP/IP 连接,用 --skip-networking 选项启动 mysqld 。
相关文章推荐
- MySQL DNS的使用过程详细分析
- MySQL 如何使用索引 较为详细的分析和例子
- ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析
- Linux 下 使用 yum 安装 mysql 的详细步骤及其使用过程
- zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
- ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析
- mysql 中show 命令用法详细介绍 mysql过程(procedure)的使用
- MySQL使用DNS的过程
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(500W单表)
- ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(500W单表)
- MySQL 使用mysqld_multi部署单机多实例详细过程
- Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)
- 请描述MySql从安装到配置的全部详细过程(确保一台新电脑可以顺利使用mysql)
- zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
- zabbix3.0.2 使用percona mysql插件来监控mysql5.7的详细实现过程
- MySQL 使用自增ID主键和UUID 作为主键的优劣比较详细过程(从百万到千万表记录测试)