Ich bin ab und zu darauf gestoßen. Die Erklärung ist meistens, dass MySQL Server so konfiguriert ist, dass es eine Socket-Datei unter einem Pfad verwendet, aber php.ini
Der Abschnitt von mysqli oder pdo_mysql sucht nach der Socket-Datei in einem anderen Pfad.
Dies passiert mir, obwohl ich sowohl PHP als auch MySQL von MacPorts installiere. Man könnte meinen, sie hätten die Konfigurationen für diese beiden Ports übereinstimmen lassen.
Bearbeiten Sie entweder Ihre php.ini
um den korrekten Speicherort der Socket-Datei festzulegen, oder spezifizieren Sie den Socket, wenn Sie eine Verbindung mit mysqli oder pdo_mysql initiieren.
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")
Siehe auch den Artikel, den ich geschrieben habe Error2003-CantConnectToMySQLServer .