J'exécute MySQL5.6.3 sur une machine virtuelle CentOS 6.1 fonctionnant sous Windows XP in VirtualBox .
La carte réseau est configurée en mode pont, donc mes machines physiques et virtuelles partagent la même carte Ethernet.
Sur la machine virtuelle, tout fonctionne bien: accès Internet, recherches DNS. Cependant, les connexions au démon MySQL prennent un certain temps et les journaux continuent d'afficher cet avertissement:
[Avertissement] L'adresse IP '192.168.1.201' n'a pas pu être résolue: échec temporaire dans la résolution de nom
192.168.1.201
est ma machine hôte sur laquelle j'exécute le client MySQL.
On dirait que bien que les recherches DNS fonctionnent correctement, inverser les recherches DNS finissent dans un délai d'attente.
Voici la configuration de la machine virtuelle:
# 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
Y a-t-il un problème dans la configuration de mon réseau?
À mon humble avis, il semble que vous ayez besoin de mysqld pour arrêter d'utiliser DNS.
Veuillez faire ce qui suit: Ajoutez ceci à /etc/my.cnf
[mysqld]
skip-Host-cache
skip-name-resolve
Redémarrez-les mysql. À partir de là, mysql ne résoudra plus les adresses via DNS.
Essaie !!!
CAVEAT
Veuillez lire ces options dans la documentation MySQL:
En outre, il existe une restriction à l'utilisation de ceci: vous ne pouvez pas utiliser de noms DNS dans la colonne Hôte des tables d'octroi.
On m'a récemment demandé si skip-Host-cache
et skip-name-resolve
pourrait être défini sans redémarrage de mysql. Découvrons-le:
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>
Comme montré, skip-Host-cache
n'est pas visible dans la liste des variables globales. Pour ce qui est de skip_name_resolve
, c'était visible. Cependant, il ne peut pas être modifié dynamiquement car il s'agit d'une variable en lecture seule.
Par conséquent, skip-Host-cache
et skip-name-resolve
ne peut être modifié que via un redémarrage mysql.