Mi sono imbattuto in questo problema e l'ho risolto accedendo alla shell db e dicendo a mysql di utilizzare il plug-in di autenticazione mysql_native_password per autenticare il database. Questo è un plugin più vecchio e probabilmente vale la pena cercarne uno più nuovo che sia anche compatibile con il driver mysql connect di Python, ma questo è l'unico modo in cui potrei farlo funzionare.
ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123'
Nell'esempio fornito dall'op dovresti sostituire root
per user_name
.
Maggiori informazioni sul plug-in:https://dev. mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html