localhost
es especial en MySQL, significa una conexión a través de un zócalo UNIX (o canalizaciones con nombre en Windows, creo) en lugar de un zócalo TCP/IP. Usando %
ya que el host no incluye localhost
, de ahí la necesidad de especificarlo explícitamente.