es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Nueva advertencia de Mysql: plugin de autenticación new_auth_plugin: caching_sha2_password.

Después de instalar MySQL y trabajar durante casi 1 mes, me enfrento al siguiente aviso cada vez que intento ejecutar una consulta dentro de un script de Python:

¿ALGUNA AYUDA PARA MANEJAR ESTO?

(MainThread) # _do_auth(): user: root
(MainThread) # _do_auth(): self._auth_plugin: 
(MainThread) new_auth_plugin: caching_sha2_password
(MainThread) # request: b'\xa5\x0c/\x14v\t\x86O\xa8\x84\xc7\x93\x8c8\x1c\xa9\x8b@\xaf\xa1' size: 20
(MainThread) # server response packet: bytearray(b'\x07\x00\x00\x05\x00\x00\x00\x02\x00\x00\x00')
Tags:  ,

Answer

  1. Avatar for davy.ai

    Esta advertencia está relacionada con el complemento de autenticación utilizado por el servidor MySQL. El complemento de autenticación predeterminado en MySQL 8.0 es “caching_sha2_password” en lugar del anterior “mysql_native_password” que se utiliza en versiones anteriores.

    Para solucionar esta advertencia, cambia el complemento de autenticación para el usuario del servidor MySQL a “mysql_native_password” o actualiza el script de Python para utilizar la autenticación “caching_sha2_password”.

    Para cambiar el complemento de autenticación para el usuario del servidor MySQL, utiliza el siguiente comando:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'contraseña';
    

    Reemplaza ‘contraseña’ con la contraseña real del usuario root.

    Alternativamente, actualiza el script de Python para utilizar la autenticación “caching_sha2_password” utilizando el método mysql.connector.connect():

    import mysql.connector
    
    mydb = mysql.connector.connect(
      host="localhost",
      user="root",
      password="contraseña",
      auth_plugin='caching_sha2_password'
    )
    
    mycursor = mydb.cursor()
    
    mycursor.execute("SELECT * FROM nombretabla")
    
    for x in mycursor:
      print(x)
    

    Reemplaza “contraseña” con la contraseña real del usuario root y “nombretabla” con el nombre real de la tabla que deseas consultar.

    Al utilizar el argumento auth_plugin con el valor “caching_sha2_password”, estás indicando al módulo mysql.connector que utilice el nuevo complemento de autenticación en lugar del anterior.

    ¡Espero que esto te ayude!

Comments are closed.