A volte in php/mysql c'è una differenza tra localhost e 127.0.0.1
In mysql concedi l'accesso in base al nome host, per gli utenti locali questo sarebbe localhost. Ho visto php tentare di connettersi con 'myservername' invece di localhost anche se nella configurazione è stato definito 'localhost'.
Prova a concedere l'accesso in mysql per 127.0.0.1 e connettiti in php sulla porta 127.0.0.1 3306.