O estilo localhost de se conectar ao mysqld força o cliente mysql a autenticar através do arquivo socket.
Conectar via curinga % exige a conexão ao mysqld via TCP / IP.
Se tiver myuser@'%' com uma senha de mys3cr3t e você não quiser adicionar myuser@'localhost' , gostaria de sugerir o seguinte:
Conecte-se ao mysql assim
mysql --protocol=tcp -umyuser -pmys3cr3t
Usar --protocol=tcp força o programa cliente mysql a usar o TCP / IP para conectar
Depois de se conectar, execute esta consulta
SELECT USER(),CURRENT_USER();
USER () relata como você tentou autenticar no MySQL
CURRENT_USER () informa como você pode autenticar no MySQL
Eu escrevi sobre isso no DBA StackExchange em 18 de janeiro de 2012 .