mysql - tutorial - "Complemento de autenticación ''caching_sha2_password''
mysql versiones (3)
Algunos detalles más vienen aquí: el complemento caching_sha2_password
es el nuevo complemento de autenticación predeterminado en el servidor MySQL 8. Solo la biblioteca libmysql de esa distribución de MySQL 8 posee este complemento, y está integrada estáticamente en libmysql, el conector C para varios clientes. Esa caching_sha2_password
no está disponible por separado para la descarga .
Esta es la primera vez que libmysql tiene un complemento importante incluido estáticamente. Y esto hace que cualquier otro libmysql (incluido libmariadb y también libmysql más antiguo) no se conecte a MySQL 8 con un usuario que está definido para usar esa autenticación caching_sha2_password
.
Solo espero que los chicos de MariaDB sean tan agradables de incluir también esa caching_sha2_password
de caching_sha2_password
en su libmariadb, para restaurar la compatibilidad entre MySQL y MariaDB.
Desde el blog del servidor de MySQL:
Se agregó soporte para caching_sha2_password en MySQL 8.0.3. Las versiones anteriores de libmysqlclient no son compatibles con este complemento. Por lo tanto, aunque las herramientas cliente que usan libmysqlclient más antiguas que una disponible con MySQL 8.0.3 se pueden conectar al servidor MySQL 8.0.4 utilizando usuarios que usan otros complementos de autenticación como mysql_native_password o sha256_password, este cliente no puede conectarse al servidor MySQL 8.0.4 usando usuarios que requieren caching_sha2_password support. Para una base de datos actualizada, significa que la conexión con una cuenta de usuario existente no debe enfrentar ningún problema.
Soy nuevo en el entorno MySql e instalado: MySQL con los siguientes comandos:
sudo apt-get update sudo apt-get install mysql-server mysql_secure_installation
y también instalé el banco de trabajo mysql.
Pero cuando intento conectar mi host local, aparece el siguiente error:
"El complemento de autenticación ''caching_sha2_password'' no se puede cargar: /usr/lib/mysql/plugin/caching_sha2_password.so: no se puede abrir el archivo de objeto compartido: no existe ese archivo o directorio"
e incluso esta es la primera vez que publico una pregunta en stackoverflow, perdón por los errores y la sintaxis de mi presentación.
En el archivo my.cnf agregue la siguiente línea:
default-authentication-plugin=mysql_native_password
a continuación, reinicie el servidor.
Así que encontré la razón de ese mensaje de error (al menos para mi caso). Esto se debe a que MySQL a partir de la versión 8.04 y posteriores usa caching_sha2_password
como complemento de autenticación predeterminado donde anteriormente se usó mysql_native_password
.
Obviamente, esto causa problemas de compatibilidad con los servicios más antiguos que esperan la autenticación mysql_native_password
.
Soluciones:
Busque una versión actualizada del servicio de cliente que está utilizando (el entorno de trabajo más reciente, por ejemplo).
Baje la calificación del servidor MySQL a una versión debajo de ese cambio.
- Cambie el complemento de autenticación por usuario (no encontré una opción global, aunque quizás exista una).
Ahora con respecto a la opción 3, esto es tan simple como alterar al usuario:
ALTER USER user
IDENTIFIED WITH mysql_native_password
BY ''pw'';
o al crear el usuario:
CREATE USER ''username''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''password'';