A veces en php/mysql hay una diferencia entre localhost y 127.0.0.1
En mysql, otorga acceso según el nombre del host, para los usuarios locales, esto sería localhost. He visto que php intenta conectarse con 'myservername' en lugar de localhost, aunque en la configuración se definió 'localhost'.
Intente otorgar acceso en mysql para 127.0.0.1 y conéctese en php sobre 127.0.0.1 puerto 3306.