Me encontré con este problema y lo resolví ingresando al shell de db y diciéndole a mysql que use el complemento de autenticación mysql_native_password para autenticar su base de datos. Este es un complemento más antiguo y probablemente valga la pena buscar uno más nuevo que también sea compatible con el controlador mysql connect de Python, pero esta es la única forma en que podría hacerlo funcionar.
ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123'
En el ejemplo proporcionado por la operación, sustituiría root
para user_name
.
Más información sobre el complemento:https://dev. mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html