Dlaczego tak
Konto w MySQL to para użytkownik@host; host localhost oznacza, że logowanie jest możliwe tylko z maszyny, na której działa serwer, a hasło ustala klauzula IDENTIFIED BY. Znak % w części host pozwala łączyć się z dowolnego adresu, czyli również zdalnie. Polecenie GRANT USER nie istnieje, a ręczne wpisywanie do tabel systemowych nie jest właściwym sposobem tworzenia kont.