Mi sono imbattuto in questo di tanto in tanto. La spiegazione più spesso è che MySQL Server è configurato per utilizzare un file socket in un percorso, ma php.ini
La sezione di mysqli o pdo_mysql sta cercando il file socket in un altro percorso.
Questo mi succede anche se installo sia PHP che MySQL da MacPorts. Penseresti che avrebbero concordato le configurazioni per queste due porte.
Modifica il tuo php.ini
per impostare la posizione corretta del file socket, oppure specificare il socket quando avvii una connessione con mysqli o 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")
Vedi anche l'articolo che ho scritto Error2003-CantConnectToMySQLServer .