'localhost' é e tem sempre foi especial com o MySQL . No seu caso, você concede [email protected] alguns privilégios e isso significaria 'o rastreador do usuário se conectando através do soquete UNIX'. E tenho certeza de que o servidor MySQL está configurado com --skip-networking .
Isso pode ser corrigido sendo explícito. Usando o argumento de conexão unix_socket do seu driver de banco de dados, isso forçaria o uso do soquete UNIX. (Vinculando descaradamente aos documentos do MySQL Connector/Python, pois sou o mantenedor desse driver).