Eu me deparei com esse problema e o resolvi inserindo o db shell e dizendo ao mysql para usar o plugin de autenticação mysql_native_password para autenticar seu banco de dados. Este é um plugin mais antigo e provavelmente vale a pena procurar um mais novo que também seja compatível com o driver mysql connect do Python, mas essa é a única maneira de fazê-lo funcionar.
ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password123'
No exemplo fornecido pelo op você substituiria
root
para user_name
. Mais sobre o plug-in:https://dev. mysql.com/doc/refman/8.0/en/native-pluggable-authentication.html