Понякога в php/mysql има разлика между localhost и 127.0.0.1
В mysql предоставяте достъп въз основа на името на хоста, за локални потребители това би било localhost. Виждал съм php да се опитва да се свърже с 'myservername' вместо с localhost, въпреки че в конфигурацията е дефиниран 'localhost'.
Опитайте да предоставите достъп в mysql за 127.0.0.1 и се свържете в php през 127.0.0.1 порт 3306.