python - El complemento de autenticación ''caching_sha2_password'' no es compatible
mysql (9)
Estoy tratando de conectarme a un servidor MySQL con conector python.
lcherukuri
un nuevo usuario
lcherukuri
con el complemento de autenticación
mysql_native_password
.
Pero tengo el error
mysql.connector.errors.NotSupportedError: el complemento de autenticación ''caching_sha2_password'' no es compatible
¿Alguien me puede ayudar?
import mysql.connector
cnx = mysql.connector.connect(user=''lcherukuri'', password=''password'',
host=''127.0.0.1'',
database=''test'')
cnx.close()
Esta pregunta ya está respondida aquí y esta solución funciona.
cachear la contraseña de sha2 no es compatible con mysql
Solo prueba este comando:
pip install mysql-connector-python
Intento resolver este error y finalmente instalo PyMySQL en lugar de la biblioteca mysql y está funcionando correctamente.
Gracias.
Me encontré con el mismo problema también. Mi problema fue que accidentalmente instalé la versión incorrecta del conector. Elimine la versión instalada actualmente de su sistema de archivos (mi ruta se ve así: C: / Archivos de programa / Python36 / Lib / site-packages) y luego ejecute "pip install mysql-connector-python". Esto debería solucionar tu problema
Modificar el cifrado Mysql
ALTER USER ''lcherukuri''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''password'';
Ninguna de las soluciones anteriores funciona para mí. Lo intenté y quedé muy frustrado hasta que vi el siguiente video: https://www.youtube.com/watch?v=tGinfzlp0fE
"pip uninstall mysql-connector" funciona en algunas computadoras y puede que no funcione con otras computadoras.
Hice lo siguiente:
El conector mysql causa problemas.
-
pip desinstalar mysql-connector
Puede que no necesite lo siguiente pero quité ambos conectores completamente.
-
pip desinstalar mysql-connector-python
reinstale el conector mysql-conenct-pyhton.
-
pip instalar mysql-connector-python
Por caché SHA-2 autenticación conectable
En MySQL 8.0,
caching_sha2_password
es el complemento de autenticación predeterminado en lugar demysql_native_password
.
Estás usando
mysql_native_password
, que ya no es el predeterminado.
Suponiendo que está utilizando el
conector correcto para su versión
, debe especificar
el argumento
auth_plugin
al crear una instancia de su objeto de conexión
cnx = mysql.connector.connect(user=''lcherukuri'', password=''password'',
host=''127.0.0.1'', database=''test'',
auth_plugin=''mysql_native_password'')
De esos mismos documentos:
El método
connect()
admite un argumentoauth_plugin
que se puede usar para forzar el uso de un complemento en particular. Por ejemplo, si el servidor está configurado para usarsha256_password
de manera predeterminada y desea conectarse a una cuenta que se autentique usandomysql_native_password
, conéctese usando SSL o especifiqueauth_plugin=''mysql_native_password''
.
Puede ir a Configuración-> Proyecto-> Intérprete del proyecto y aquí instalar la última versión del paquete mysql-connector-python. En mi caso fue mysql-connector-python 8.0.15.
Tuve el mismo problema y el paso
auth_plugin=''mysql_native_password''
no funcionó, porque accidentalmente instalé
mysql-connector
lugar de
mysql-connector-python
(a través de pip3).
Simplemente dejar esto aquí en caso de que ayude a alguien.
Tuve este mismo problema pero mi resolución fue diferente porque no funcionó completamente.
Encontré esto en un foro de GitHub: copia y pega esto en tu terminal. No tienes que cambiar tu contraseña; Puede ser exactamente el mismo.
ALTER USER ''root''@''localhost'' IDENTIFIED BY ''password'' PASSWORD EXPIRE NEVER;
ALTER USER ''root''@''localhost'' IDENTIFIED WITH mysql_native_password BY ''{NewPassword}'';