mysql - El complemento de autenticación ''caching_sha2_password'' no se puede cargar
database mysql-workbench (25)
¿Me gusta esto?
docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp
https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml
o Debe usar MySQL Workbench 8.0.11.
Estoy conectando MySQL - 8.0 con MySQL Workbench y obtengo el siguiente error:
El complemento de autenticación ''caching_sha2_password'' no se puede cargar: dlopen (/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): imagen no encontrada
He intentado con otra herramienta de cliente también.
¿Alguna solución para esto?
-Abrir cliente de línea de comandos MySQL
-Crear un nuevo usuario con un nuevo pase
Considerando un ejemplo de una ruta a una carpeta bin en la parte superior, aquí está el código que debe ejecutar en el símbolo del sistema, línea por línea:
cd C:/Program Files/MySQL/MySQL Server 5.7/bin
MySQL -u root -p
current password...***
CREATE USER ''nativeuser''@''localhost''
IDENTIFIED WITH mysql_native_password BY ''new_password'';
-Entonces, puede acceder a Workbench nuevamente (debería poder hacerlo después de crear una nueva conexión de host local y usar las nuevas credenciales para comenzar a usar el programa).
Configure una nueva conexión de host local con el nombre de usuario mencionado anteriormente (usuario nativo), inicie sesión con la contraseña (nueva_contraseña)
Cortesía: Preguntas frecuentes sobre UDEMY respondidas por el equipo de Career365
Actualmente (el 23/04/2018), debe descargar una versión de desarrollo . Los GA no funcionan.
No pude conectarme con la última versión de GA (6.3.10).
Funcionó con
mysql-workbench-community-8.0.11-rc-winx64.msi
(de
https://dev.mysql.com/downloads/workbench/
, pestaña
Development Releases
).
Aquí está la solución que funcionó para mí después de la instalación de MySQL 8.0 en Windows 10.
Supongamos que el nombre de usuario MySQL es
root
y la contraseña es
admin
Abra el símbolo del sistema e ingrese los siguientes comandos:
cd C: / Archivos de programa / MySQL / MySQL Server 8.0 / bin
mysql_upgrade -uroot -padmin
mysql -uroot -padmin
ALTERAR USUARIO ''root'' @ ''localhost'' IDENTIFICADO CON mysql_native_password POR ''admin''
Casi como las respuestas anteriores, pero puede estar en consultas simples, recibí este error en mi aplicación de arranque de primavera junto con hibernar después de la actualización de MySQL. Creamos un nuevo usuario ejecutando las consultas a continuación en nuestra base de datos. Creo que esta es una solución temporal para usar sha256_password en lugar de la última y buena autenticación caching_sha2_password.
CREATE USER ''username''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''pa$$word'';
GRANT ALL PRIVILEGES ON * .* TO ''username''@''localhost'';
Esta es mi definición de databdase en mi docker-compose:
dataBase:
image: mysql:8.0
volumes:
- db_data:/var/lib/mysql
networks:
z-net:
ipv4_address: 172.26.0.2
restart: always
entrypoint: [''docker-entrypoint.sh'', ''--default-authentication-plugin=mysql_native_password'']
environment:
MYSQL_ROOT_PASSWORD: supersecret
MYSQL_DATABASE: zdb
MYSQL_USER: zuser
MYSQL_PASSWORD: zpass
ports:
- "3333:3306"
La línea relevante allí es el punto de entrada .
Después de construirlo y subirlo, puedes probarlo con:
$ mysql -u zuser -pzpass --host=172.26.0.2 zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+
Estaba instalando MySQL en mi PC con Windows 10 usando " MySQL Web Installer " y estaba enfrentando el mismo problema al intentar conectarme usando MySQL workbench. Solucioné el problema reconfigurando el servidor desde la ventana del instalador.
Al hacer clic en la opción "Reconfigurar", permitirá reconfigurar el servidor. Haga clic en "Siguiente" hasta llegar al "Método de autenticación".
Una vez en esta pestaña, use la segunda opción "Usar método de autenticación heredado (mantener la compatibilidad con MySQL 5.x)".
Mantenga todo lo demás como está y así es como resolví mi problema.
Este error aparece cuando la herramienta utilizada no es compatible con MySQL8, intente actualizar a la última versión de MySQL Workbench para MySQL8
La descarga de una versión de desarrollo de 8.0.11-rc me funcionó en una Mac. con los siguientes comandos de docker:
docker run --name mysql -p 3406:3306 -e MYSQL_ROOT_PASSWORD=mypassword -d mysql
La siguiente solución funcionó para mí
Vaya a Mysql Workbench -> Servidor-> Usuarios y privilegios 1.Haga clic en Agregar cuenta
2.En la pestaña de inicio de sesión, proporcione nuevos detalles y asegúrese de elegir el tipo de autenticación como estándar y elija las funciones administrativas y los privilegios de esquema respectivos
MySQLWorkbench 8.0.11 para macOS aborda esto. Puedo establecer una conexión con la instancia de mysql protegida con contraseña de root que se ejecuta en docker.
Nota: para MAC OS
- Abra MySQL desde Preferencias del sistema> Inicializar base de datos>
- Escribe tu nueva contraseña.
- Elija ''Usar contraseña heredada''
- Inicie el servidor nuevamente.
- Ahora conecte el MySQL Workbench
Ok, perdí mucho tiempo en esto, así que aquí hay un resumen del 19 de marzo de 2019
Si está tratando específicamente de usar una imagen Docker con MySql 8+ , y luego usa SequelPro para acceder a su (s) base (s) de datos que se ejecutan en ese contenedor docker, no tiene suerte.
Vea el número 2699 de sequelpro
Mi configuración es sequelpro 1.1.2 usando docker desktop 2.0.3.0 (mac - mojave), e intenté usar mysql: latest (v8.0.15).
Como otros han informado, el uso de mysql 5.7 funciona sin necesidad de nada:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
Por supuesto, es posible usar MySql 8+ en Docker, y en esa situación (si es necesario), otras respuestas proporcionadas aquí para
caching_sha2_password
tipo
caching_sha2_password
funcionan.
Pero sequelpro es un NO GO con MySql 8+
Finalmente, abandoné sequelpro (un amigo de confianza de 2013-2014) y en su lugar instalé DBeaver . Todo salió de la caja. Para docker, usé:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password
Puede echar un vistazo rápido a las bases de datos mysql usando:
docker exec -it mysql1 bash
mysql -u root -p
show databases;
Para aquellos que usan Docker o Docker Compose, experimenté este error porque no configuré la versión de mi imagen MySQL. Docker intentará automáticamente obtener la última versión, que es la 8.
Configuré MySQL a 5.7 y reconstruí la imagen y funcionó normalmente:
version: ''2''
services:
db:
image: mysql:5.7
Para mí, esto comenzó a suceder porque en un proyecto, estaba usando Docker image mysql: latest (que era la versión 5 y que funcionaba bien), y durante una compilación posterior, la última versión se cambió a la versión 8 y dejó de funcionar . Cambié mi imagen a mysql: 5 y ya no recibía este error .
Puede cambiar el cifrado de la contraseña de esta manera.
ALTER USER ''yourusername''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''youpassword'';
Puede cambiar el cifrado de la contraseña del usuario alterando el usuario con el siguiente comando Alter:
ALTERAR USUARIO ''username'' @ ''ip_address'' IDENTIFICADO CON mysql_native_password POR ''contraseña'';
O
Podemos evitar este error haciendo que funcione con el antiguo complemento de contraseña:
Primero cambie el complemento de autenticación en el archivo my.cnf para el archivo Linux / my.ini en Windows :
[mysqld]
default_authentication_plugin = mysql_native_password
Reinicie el servidor mysql para tomar los cambios en efecto e intente conectarse a través de MySQL con cualquier cliente mysql.
Si aún no puede conectarse y obtiene el siguiente error:
Unable to load plugin ''caching_sha2_password''
Significa que su usuario necesita el complemento anterior. Por lo tanto, intente crear un nuevo usuario con el comando crear usuario o otorgar después de cambiar el complemento predeterminado. entonces el nuevo usuario necesita el complemento nativo y podrá conectarse a MySQL.
Gracias
Resolví este problema instalando MySQL 5.7:
Paso 1 - Habilite el repositorio MySQL
En primer lugar, debe habilitar MySQL 5.7 community release yum repositorio en su sistema. Los paquetes rpm para la configuración del repositorio de yum están disponibles en el sitio web oficial de MySQL. Utilice uno de los siguientes comandos según la versión de su sistema operativo.
En CentOS y RHEL 7
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
En CentOS y RHEL 6
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
En Fedora 27
dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm
En Fedora 26
dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm
En Fedora 25
dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm
Paso 2 - Instalar el servidor MySQL 5.7
Como ha habilitado con éxito el repositorio de MySQL yum en su sistema. Ahora, instale el servidor de comunidad MySQL 5.7 usando los siguientes comandos según la versión de su sistema operativo.
En CentOS y RHEL 7/6
yum install mysql-community-server
En Fedora 27/26/25
dnf install mysql-community-server
Si recibe este error en GitLab CI como yo: simplemente cambie de la última versión a la 5.7;)
# .gitlab-ci.yml
rspec:
services:
# - mysql:latest (I''m using latest version and it causes error)
- mysql:5.7 #(then I''ve changed to this specific version and fix!)
Tuve el mismo problema, pero la respuesta de Aman Aggarwal no funcionó para mí con un contenedor Docker que ejecuta mysql 8.X. Logueé en el contenedor
docker exec -it CONTAINER_ID bash
luego inicie sesión en mysql como root
mysql --user=root --password
Ingrese la contraseña para root (el valor predeterminado es ''root'') Finalmente, ejecute:
ALTER USER ''username'' IDENTIFIED WITH mysql_native_password BY ''password'';
Estás listo.
Volver a las instalaciones anteriores (a MySQL Community Server 5.7 y Workbench 6.1) y configurar nuevas credenciales de MySQL funcionó para mí.
encontre eso
ALTER USER ''username''@''ip_address'' IDENTIFIED WITH mysql_native_password BY ''password'';
No funcionó por sí mismo. También necesitaba configurar
[mysqld]
default_authentication_plugin=mysql_native_password
en /etc/mysql/mysql.conf.d/mysqld.cnf en Ubuntu 18.04 con PHP 7.0
Para Windows 10 ,
- Modifique el archivo my.ini en ** C: / ProgramData / MySQL / MySQL Server 8.0 **
[mysqld] default_authentication_plugin = mysql_native_password
-
Reiniciar el servicio MySQL
-
inicie sesión en MySQL en la línea de comandos, ejecute los siguientes comandos en MySQL
-
Crea un nuevo usuario
CREAR USUARIO ''usuario'' @ ''localhost'' IDENTIFICADO POR ''contraseña'';
- Conceder todos los privilegios
OTORGUE TODOS LOS PRIVILEGIOS EN *. * A ''user'' @ ''localhost'';
- Abra MySQL workbench, abra una nueva conexión usando las nuevas credenciales de usuario
Estaba enfrentando el mismo problema y esto funcionó.
Para Windows 10: abra el símbolo del sistema
cd "C:/Program Files/MySQL/MySQL Server 8.0/bin"
C:/Program Files/MySQL/MySQL Server 8.0/bin> mysql -u root -p
Enter password: *********
mysql> ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''newrootpassword'';
Query OK, 0 rows affected (0.10 sec)
mysql> exit
Alternativamente, puede cambiar la configuración de my.ini de la siguiente manera:
[mysqld]
default_authentication_plugin = mysql_native_password
Reinicie el servidor MySQL y abra el Workbench nuevamente.