Jag har stött på det här då och då. Förklaringen är oftast att MySQL Server är konfigurerad att använda en socket-fil på en sökväg, men php.ini
s sektion på mysqli eller pdo_mysql letar efter socket-filen på en annan sökväg.
Detta händer mig trots att jag installerar både PHP och MySQL från MacPorts. Man skulle kunna tro att de hade fått konfigurationerna för dessa två portar att överensstämma.
Redigera antingen din php.ini
för att ställa in rätt plats för socket-filen, eller ange socket när du initierar en anslutning med mysqli eller 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")
Se även artikeln jag skrev Error2003-CantConnectToMySQLServer .