Estoy tratando de conectarme a un servidor MySQL con conector Python. Creé 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()
Respuestas:
Autenticación conectable SHA-2 por caché
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 elauth_plugin
argumento al crear una instancia de su objeto de conexióncnx = mysql.connector.connect(user='lcherukuri', password='password', host='127.0.0.1', database='test', auth_plugin='mysql_native_password')
De esos mismos documentos:
fuente
Tuve el mismo problema y el paso
auth_plugin='mysql_native_password'
no funcionó, porque lo instalé accidentalmente enmysql-connector
lugar demysql-connector-python
(a través de pip3). Solo dejo esto aquí en caso de que ayude a alguien.fuente
Esta pregunta ya está respondida aquí y esta solución funciona.
el almacenamiento en caché de la contraseña sha2 no es compatible con mysql
Prueba este comando:
pip install mysql-connector-python
fuente
mysql-connector
está en desuso. Debería usarmysql-connector-python
como se muestra en la respuesta anterior.Ninguna de las soluciones anteriores funciona para mí. Lo intenté y muy frustrado hasta que vi el siguiente video: https://www.youtube.com/watch?v=tGinfzlp0fE
pip uninstall mysql-connector
funciona en alguna computadora y es posible que no funcione en otra computadora.Hice lo siguiente:
El conector mysql causa problemas.
pip uninstall mysql-connector
Es posible que lo siguiente no sea necesario, pero eliminé ambos conectores por completo.
pip uninstall mysql-connector-python
reinstale el conector mysql-conenct-python.
pip install mysql-connector-python
fuente
También tengo un error similar
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin "Authentication plugin '{0}' is not supported".format(plugin_name)) mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported
Probablemente haya instalado mysql-connector en lugar de mysql-connector-python. Entonces necesitas instalarlo nuevamente para python3:
pip3 install mysql-connector-python
fuente
Modificar el cifrado de Mysql
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
fuente
Tuve el mismo problema, pero mi resolución fue diferente porque no funcionó por completo.
Encontré esto en un foro de GitHub: cópielo y péguelo en su terminal. No tiene que cambiar su contraseña; puede ser exactamente lo mismo.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
fuente
Puede ir a Settings-> Project-> Project Interpreter y aquí instalar la última versión del paquete mysql-connector-python. En mi caso fue mysql-connector-python 8.0.15.
fuente
Para tener una solución más permanente sin pasar por su código y modificar lo que necesite ser modificado: Según la documentación de MySQL 8 , la forma más fácil de solucionar esto es agregar lo siguiente a su archivo MySQL d -> reiniciar el servidor MySQL.
¡Esto funcionó para mí!
Si su instalación de MySQL debe servir a clientes anteriores a 8.0 y encuentra problemas de compatibilidad después de actualizar a MySQL 8.0 o superior, la forma más sencilla de abordar esos problemas y restaurar la compatibilidad de versiones anteriores a 8.0 es reconfigurar el servidor para volver al complemento de autenticación predeterminado anterior ( mysql_native_password). Por ejemplo, use estas líneas en el archivo de opciones del servidor:
[mysqld] #add the following file to your MySQLd file default_authentication_plugin=mysql_native_password
fuente
Instale el siguiente comando usando el símbolo del sistema.
pip install mysql-connector-python
fuente
Utilizar
pip install mysql-connector-python
Luego conecta así:
import mysql.connector mydb = mysql.connector.connect( host="localhost", #hostname user="Harish", # the user who has privilege to the db passwd="Harish96", #password for user database="Factdb", #database name auth_plugin = 'mysql_native_password', )
fuente
Estuve enfrentando el mismo error durante 2 días, luego finalmente encontré una solución. Verifiqué todos los conectores instalados usando
pip list
y desinstalé todos los conectores. En mi caso fueron:Los desinstalé usando
pip uninstall mysql-connector
y finalmente descargué e instalé elmysql-connector-python
del sitio web oficial de MySQL y funciona bien.fuente
pip3 install mysql-connector-python también resolvió mi problema. Ignore el uso del módulo conector mysql.
fuente
Instale el conector mysql usando el siguiente comando.
pip install mysql-connector-python-rf
Utilice el comando para establecer los privilegios.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;
Use el comando python para conectarse a la base de datos mysql
mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')
fuente
Para aquellos que no pudieron hacer ejercicio porque instalaron mysql-connector primero, hice lo siguiente:
1.Primero en CMD, vaya al camino de 'pip'
2.Utilice el comando 'pip list'
3.Habría tres paquetes instalados, a saber, seis, protobuf y mysql-connector
4.Desinstale cada uno de ellos por separado
5.Ahora instale nuevamente el módulo mysql-connector-python
Esto funcionó para mi
fuente
También me encontré con el mismo problema. Mi problema fue que instalé accidentalmente la versión del conector incorrecta. 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
fuente
Intento resolver este error y finalmente instalar PyMySQL lugar de la biblioteca mysql y está funcionando correctamente.
Gracias.
fuente
Si está buscando la solución del siguiente error
La solución: debe agregar
--user
si encuentra un error de acceso denegado.pip install --user mysql-connector-python
pegue este comando en cmd y resuelva su problema
fuente
Tuve un error casi idéntico:
Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported
La solución para mí fue simple:
Mi nombre de usuario / contraseña de base de datos era incorrecto. El error no describía el problema, así que pensé en compartir esto en caso de que alguien más se encuentre con esto.
fuente
Desinstalé mysql-connector (instalé siguiendo el tutorial en el tutorial de w3schools) e instalé mysql-connector-python en su lugar. Funcionó.
fuente
Usando MySql 8 obtuve el mismo error al conectar mi código a la base de datos, usar pip install mysql-connector-python resolvió este error.
fuente