La dirección IP de MySQL [Advertencia] no se pudo resolver

27

Estoy ejecutando MySQL5.6.3 en una máquina virtual CentOS 6.1 que se ejecuta en Windows XP en VirtualBox .

La tarjeta de red está configurada en modo puente, por lo que mis máquinas físicas y virtuales comparten la misma tarjeta ethernet.

En la máquina virtual, todo funciona bien: acceso a internet, búsquedas de DNS. Sin embargo, las conexiones al demonio MySQL tardan un tiempo, y los registros siguen mostrando esta advertencia:

[Advertencia] La dirección IP '192.168.1.201' no se pudo resolver: error temporal en la resolución de nombres

192.168.1.201 es mi máquina host en la que estoy ejecutando el cliente MySQL.

Se parece a pesar de DNS lookups trabajo fino, inversa búsquedas de DNS terminan en un tiempo de espera.

Aquí está la configuración de la máquina virtual:

# 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

¿Hay algo mal en mi configuración de red?

Benjamín
fuente
consulte mi otra respuesta para esta pregunta: serverfault.com/a/778161/96578
Amin Sh

Respuestas:

49

En mi humilde opinión, esto parece que necesita mysqld para dejar de usar DNS.

Haga lo siguiente: Agregue esto a /etc/my.cnf

[mysqld]
skip-host-cache
skip-name-resolve

Ellos reiniciar mysql. A partir de entonces, mysql ya no resolverá direcciones a través de DNS.

Darle una oportunidad !!!

ADVERTENCIA

Lea estas opciones en la documentación de MySQL:

Además, hay una restricción para usar esto: no puede usar nombres DNS en la columna de host de ninguna de las tablas de concesión.

ACTUALIZACIÓN 2012-12-17 08:37 EDT

Hace poco me preguntaron si skip-host-cachey skip-name-resolvese podría establecer sin reiniciar MySQL. Vamos a averiguar:

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>

Como se muestra, skip-host-cacheno es visible en la lista de variables globales. En cuanto a skip_name_resolve, era visible. Sin embargo, no puede cambiar dinámicamente porque es una variable de solo lectura.

Por lo tanto, skip-host-cachey skip-name-resolvesolo se puede cambiar a través de un reinicio mysql.

RolandoMySQLDBA
fuente
¿Tenemos algún problema como efecto de deshabilitar las búsquedas de DNS?
Uday
@Uday la única preocupación dentro de mysql es esta: no puede usar un nombre DNS de manera efectiva en la columna de host de mysql.user. Si tiene alguna, debe reemplazarla con la dirección IP pública o privada (preferible).
RolandoMySQLDBA
@RolandoMySQLDBA ¿hay alguna manera de agregar skip-host-cachey skip-name-resolvesin reiniciar MySql?
Corrió el
@Ran Lo siento, la respuesta es no. Actualicé mi respuesta para reflejar esto.
RolandoMySQLDBA
¿Puede haber algún problema posible como la conectividad de localhost o cualquier otro problema? Estoy enfrentando un problema para ip243.221.167.124.adsl-pool.sx.cn
Malay M