MySql überprüft beim Login ob der Host (Computer) die Berechtigung hat für den Zugriff. Wenn du dich lokal einloggst mit dem Benutzer "root" und dieser Benutzer hat keine Zugriffsberechtigung vom Computer "localhost" dann wird mySQL die Verbindung nicht erlauben.
Verwende ein Programm zur Verwaltung der mySQL-Datenbank z.B. http://www.mysqlfront.de/ bzw. http://www.heidisql.com/
und lege einen neuen User der Berechtungen für Host "localhost" und "%" (alle externen Hosts) an mit diesem Befehl:
GRANT Select, Insert, Update, Delete, Index, Alter, Create, Drop, References ON datenbank.* TO 'benutzername'@'localhost' IDENTIFIED BY 'password';
GRANT Select, Insert, Update, Delete, Index, Alter, Create, Drop, References ON datenbank.* TO 'benutzername'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;