Saya telah mengalami ini dari waktu ke waktu. Penjelasannya paling sering bahwa Server MySQL dikonfigurasi untuk menggunakan file soket di satu jalur, tetapi php.ini
's di mysqli atau pdo_mysql mencari file soket di jalur lain.
Ini terjadi pada saya meskipun saya menginstal PHP dan MySQL dari MacPorts. Anda akan mengira mereka akan membuat konfigurasi untuk kedua port ini setuju.
Edit php.ini
. Anda untuk mengatur lokasi file soket yang benar, atau tentukan soket saat Anda memulai koneksi dengan mysqli atau 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")
Lihat juga artikel yang saya tulis Error2003-CantConnectToMySQLServer .