mysql dos métodos de conexión y conexión SSL, autenticación x509
Las conexiones Mysql se pueden dividir en dos tipos: conexiones de socket y conexiones TCP|IP.
[root@localhost bin]# mysql -uroot -p123456 -S/tmp/mysql.sock
-S/tmp/mysql.sock se puede omitir porque los parámetros predeterminados son de la siguiente manera:
Si hay algo más en el archivo sock, no se puede omitir más adelante y es necesario especificarlo.
mysql -h127.0.0.1 -P3306 -uroot -p123456
Entonces la pregunta es, ¿cómo saber el método de conexión de la conexión actual?
Para ver el modo de conexión actual, use el comando \s o status
Conexión: Localhost a través del socket UNIX significa usar el socket para la conexión local
SSL: No en no se utiliza SSL
Conexión: 127.0.0.1 vía TCP/IP Conexión remota mediante protocolo TCP/IP
SSL: El cifrado en uso es ECDHE-RSA-AES128-GCM-SHA256 cifrado SSL usado
Mysql5.7 usa SSL para la comunicación de forma predeterminada.
/s genera SSL: No en uso, lo que indica que la conexión SSL no se utiliza actualmente.
Mire el archivo error.log nuevamente y hay una disminución: no se pudo configurar SSL debido al siguiente error de liberación de SSL: el contexto SSL no se puede utilizar sin certificado y clave privada. El archivo de clave pública no existe, por lo que no se puede habilitar la conexión SSL.
1. Ingrese al directorio bin y ejecute el comando: mysql_ssl_rsa_setup en el directorio raíz /data para generar el archivo de clave *.pem relevante.
2. Autorice chown mysql para el archivo pem recién generado: mysql *.pem
3. /etc/init.d/mysqld restart Reinicie mysql
4. Ingrese el comando cliente para ejecutar \s
Cuando se utiliza una conexión remota IP/TCP, \s genera SSL: el cifrado en uso es ECDHE-RSA-AES128-GCM-SHA256. Indica que se ha utilizado cifrado SSL.
Si utiliza socket para la conexión local, no se utilizará el cifrado SSL. \sSalida SSL: No en uso;
Porque activar SSL puede tener un impacto en el rendimiento.
Si no desea utilizar conexiones de inicio de sesión cifradas SSL, puede utilizar el siguiente comando para desactivarlas: mysql -h127.0.0.1 -uroot -p123456 --ssl-mode=DISABLED
Forzar un usuario para usar SSL
Después de eso, el usuario David debe usar SSL para iniciar sesión; de lo contrario, se informará el error de la siguiente manera:
Cancelar el uso forzado de SSL por parte de un usuario
Sobre la base de activar SSL, la autenticación x509 también obliga a los usuarios especificados a utilizar los certificados y archivos de clave client-cert.pem y client-key.pem para iniciar sesión; de lo contrario, no podrán iniciar sesión. x509 es el mecanismo de autenticación de más alto nivel para MySQL.
Se han generado ocho archivos *.pem en el directorio raíz de datos
Exporte client-cert.pem y client-key.pem
de la siguiente manera. y luego inicie sesión con el comando anterior. Descubrí que no podía iniciar sesión.
Si desea iniciar sesión en este momento, debe especificar el archivo SSL CERT y el archivo de clave SSL en el cliente, de la siguiente manera en navicat
En mysql workbench