Čas od času jsem se s tím setkal. Vysvětlením je nejčastěji to, že MySQL Server je nakonfigurován tak, aby používal soubor soketu na jedné cestě, ale php.ini
Sekce na mysqli nebo pdo_mysql hledá soubor soketu na jiné cestě.
To se mi stává, i když instaluji PHP i MySQL z MacPorts. Mysleli byste si, že by konfigurace pro tyto dva porty souhlasily.
Buď upravte svůj php.ini
pro nastavení správného umístění souboru soketu, nebo specifikujte soket, když zahájíte připojení s mysqli nebo 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")
Viz také článek, který jsem napsal Error2003-CantConnectToMySQLServer .