Después de configurar skip-name-resolve, el cliente no puede conectarse a mysql
Después de configurar skip-name-resolve, el cliente no puede conectarse a mysql
La razón es que mysql realiza una resolución DNS inversa en el cliente conectado.
Hay 2 soluciones:
1. Escribe la IP del cliente en el archivo /etc/hosts del servidor mysql y dale un nombre aleatorio.
2. Agregue skip-name-resolve a my.cnf.
El primer método es engorroso y poco práctico. La opción skip-name-resolve puede deshabilitar la resolución dns. Sin embargo, de esta manera, el nombre de host no se puede usar en la tabla de autorización de MySQL, solo se puede usar IP. .
Entiendo que mysql maneja el proceso de resolución del cliente de esta manera:
1. Cuando el cliente mysql se conecta, el servidor verificará activamente el nombre de dominio del cliente.
2. Primero busque el archivo /etc/hosts y busque la relación correspondiente entre el nombre de dominio y la IP.
3. Si el archivo de hosts no existe, busque la configuración DNS. Si el servidor DNS no está configurado, se devolverá el error inmediatamente, lo que equivale a configurar el parámetro skip-name-resolve en. mysql. Si el servidor DNS está configurado, realizará un análisis inverso hasta que se agote el tiempo de espera.
Nota: El llamado análisis inverso es así:
Después de que mysql recibe la solicitud de conexión, obtiene la IP del cliente para que coincida mejor con los registros de permisos en mysql.user (Algunos se definen con el nombre de host).
Si el servidor MySQL tiene un servidor DNS configurado y la IP del cliente no tiene un nombre de host correspondiente en DNS, entonces el proceso será muy lento y hará que la conexión espere.
Este proceso se omitirá después de agregar skip-name-resolve.