Ben*_*rel 29 mysql networking domain-name-system resolv.conf centos
我在VirtualBox 的Windows XP 上运行的 CentOS 6.1 虚拟机上运行 MySQL5.6.3 。
网卡配置为桥接模式,所以我的物理机和虚拟机共享同一个以太网卡。
在虚拟机上,一切正常:互联网访问、DNS 查找。但是,连接到 MySQL 守护程序需要一段时间,并且日志不断显示此警告:
[警告] IP 地址“192.168.1.201”无法解析:名称解析暂时失败
192.168.1.201
是我运行 MySQL 客户端的主机。
看起来虽然 DNS 查找工作正常,但反向DNS 查找最终会超时。
下面是虚拟机配置:
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="08:00:27:4B:3D:7C"
NM_CONTROLLED="yes"
ONBOOT="yes"
NETMASK=255.255.255.0
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
PEERDNS=yes
# cat /etc/resolv.conf
nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
我的网络配置有问题吗?
Rol*_*DBA 55
恕我直言,这听起来像您需要 mysqld 才能停止使用 DNS。
请执行以下操作:将此添加到 /etc/my.cnf
[mysqld]
skip-host-cache
skip-name-resolve
Run Code Online (Sandbox Code Playgroud)
他们重新启动mysql。从此,mysql 将不再通过 DNS 解析地址。
试一试 !!!
警告
请阅读 MySQL 文档中的这些选项:
此外,使用它有一个限制:您不能在任何授权表的主机列中使用 DNS 名称。
如果我最近被请求skip-host-cache
并skip-name-resolve
没有一个MySQL重启可以设置。让我们来了解一下:
mysql> show variables like '%host%';
+---------------+--------------+
| Variable_name | Value |
+---------------+--------------+
| hostname | ************ |
| report_host | |
+---------------+--------------+
2 rows in set (0.00 sec)
mysql> show variables like 'skip_%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| skip_external_locking | ON |
| skip_name_resolve | OFF |
| skip_networking | OFF |
| skip_show_database | OFF |
+-----------------------+-------+
4 rows in set (0.00 sec)
mysql> set global skip_name_resolve = 1;
ERROR 1238 (HY000): Variable 'skip_name_resolve' is a read only variable
mysql>
Run Code Online (Sandbox Code Playgroud)
如图所示,skip-host-cache
在全局变量列表中是不可见的。至于skip_name_resolve
,它是可见的。但是,它不能动态更改,因为它是只读变量。
因此,skip-host-cache
并skip-name-resolve
只能通过一个mysql重启改变。
归档时间: |
|
查看次数: |
86299 次 |
最近记录: |