geekmonkey Weil "localhost" immer über das lokale Socket geht, die IP-Adresse aber über TCP/IP.
Kontrolliere mal die Rechte des Users, dann wirst Du schnell feststellen, dass wahrscheinlich nur das Socket erlaubt ist.
Siehe auch: https://mariadb.com/kb/en/authentication-plugin-unix-socket/