Networking
MySQL在一個rn我ng在一種rn一世nGWarning無法解析 IP 地址
我在VirtualBox的 Windows XP 上執行的 CentOS 6.1 虛擬機上執行 MySQL5.6.3 。
網卡配置為橋接模式,所以我的物理機和虛擬機共享同一個乙太網卡。
在虛擬機上,一切正常:網際網路訪問、DNS 查找。但是,連接到 MySQL 守護程序需要一段時間,並且日誌不斷顯示以下警告:
$$ Warning $$無法解析 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
我的網路配置有問題嗎?
恕我直言,這聽起來您需要 mysqld 才能停止使用 DNS。
請執行以下操作:將其添加到 /etc/my.cnf
[mysqld] skip-host-cache skip-name-resolve
他們重新啟動mysql。從那時起,mysql 將不再通過 DNS 解析地址。
試試看 !!!
警告
請閱讀 MySQL 文件中的這些選項:
此外,使用它有一個限制:您不能在任何授權表的主機列中使用 DNS 名稱。
更新 2012-12-17 08:37 EDT
我最近被問到是否
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>
如圖所示,
skip-host-cache
在全域變數列表中是不可見的。至於skip_name_resolve
,它是可見的。但是,它不能動態更改,因為它是只讀變數。因此,
skip-host-cache
只能skip-name-resolve
通過mysql重啟來改變。