localhost est spécial dans MySQL, cela signifie une connexion via un socket UNIX (ou des canaux nommés sous Windows, je crois) par opposition à un socket TCP/IP. Utilisation de % car l'hôte n'inclut pas localhost , d'où la nécessité de le spécifier explicitement.