Сблъсквал съм се с това от време на време. Обяснението най-често е, че MySQL Server е конфигуриран да използва сокет файл по един път, но php.ini
Секцията на mysqli или pdo_mysql търси сокет файла по друг път.
Това ми се случва, въпреки че инсталирам PHP и MySQL от MacPorts. Бихте си помислили, че щяха да направят конфигурациите за тези два порта съгласувани.
Или редактирайте вашия php.ini
за да зададете правилното местоположение на файла на сокета или да посочите сокета, когато инициирате връзка с mysqli или pdo_mysql.
pdo = new PDO("mysql:dbname=test;unix_socket=/opt/local/var/run/mysql5/mysqld.sock",
"username", "password")
$mysqli = new mysqli("localhost", "username", "password", "test",
ini_get("mysqli.default_port"), "/opt/local/var/run/mysql5/mysqld.sock")
Вижте също статията, която написах Error2003-CantConnectToMySQLServer .