Also, ich habe es leider nicht mehr gefunden was ich dachte aber das Problem ist wie folgt:
Es wird grundsätzlich bei der Anmeldung am Datenbankserver (mit Server ist hierbei der Dienst / Service gemeint, nicht die Maschine) der Benutzername in Form von Benutzer@Maschine abgefragt. Somit kann man Benutzer A von PC1 (A@PC1) Zugang gewähren oder auch Benutzer B von PC1 (B@PC1), jedoch nicht Benutzer A von PC2 (A@PC2) wohl aber benutzer B von allen Maschinen (B@%). Das % wäre hierbei der Platzhalter für alle Maschinen / IP Adresse usw.
Ist das halbwegs verständlich?
Wenn ja dann hast Du anhand der Fehlermeldung das Problem, dass root von localhost (root@localhost) aus sich nciht anmelden darf, um das zu ändern sollte der richtige Eintrag in der Benutzerdatenbank, die jede ordentliche DB hat, in root@% geändert werden.
Versuche also mal in der Konsole mysql -u root -p und schau was er ausgibt bzw. ob Du so Zugriff auf die DB hast.
Wenn das klappt, wählst Du mit USE die Datenbank aus, gibst mit update an was Du ändern willst und vergisst am Ende nicht das Flush Privileges. Das ganze sollte dann so aussehen:
USE mysql; update user set host='%' where user='root'; FLUSH PRIVILEGES;