El complemento de autenticación 'caching_sha2_password' no es compatible

Resuelto lch asked hace 6 años • 29 respuestas

Estoy intentando conectarme a un servidor MySQL con conector Python. Creé un nuevo usuario lcherukuricon 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()

ingrese la descripción de la imagen aquí

lch avatar May 28 '18 05:05 lch
Aceptado

Tuve el mismo problema y pasar auth_plugin='mysql_native_password'no funcionó porque lo instalé accidentalmente mysql-connectoren lugar de mysql-connector-python(a través de pip3). Dejo esto aquí por si le sirve a alguien.

ozgeneral avatar Nov 30 '2018 16:11 ozgeneral

Autenticación conectable SHA-2 por almacenamiento en caché

En MySQL 8.0, caching_sha2_passwordes el complemento de autenticación predeterminado en lugar de mysql_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_pluginargumento 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 un auth_pluginargumento que puede usarse para forzar el uso de un complemento en particular. Por ejemplo, si el servidor está configurado para usar sha256_passwordde forma predeterminada y desea conectarse a una cuenta que se autentica usando mysql_native_password, conéctese usando SSL o especifique auth_plugin='mysql_native_password'.

Ben avatar May 27 '2018 23:05 Ben