El complemento de autenticación 'caching_sha2_password' no es compatible
Estoy intentando conectarme a un servidor MySQL con conector Python. Creé un nuevo usuario lcherukuri
con el complemento de autenticación mysql_native_password
.
pero me salió 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()
Tuve el mismo problema y pasar auth_plugin='mysql_native_password'
no funcionó porque lo instalé accidentalmente mysql-connector
en lugar de mysql-connector-python
(a través de pip3). Dejo esto aquí por si le sirve a alguien.
Autenticación conectable SHA-2 por almacenamiento en caché
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 auth_plugin
argumento 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
connect()
método admite unauth_plugin
argumento que puede usarse para forzar el uso de un complemento en particular. Por ejemplo, si el servidor está configurado para usarsha256_password
de forma predeterminada y desea conectarse a una cuenta que se autentica usandomysql_native_password
, conéctese usando SSL o especifiqueauth_plugin='mysql_native_password'
.