Tôi đã gặp phải vấn đề này theo thời gian. Lời giải thích thường gặp nhất là Máy chủ MySQL được định cấu hình để sử dụng tệp socket tại một đường dẫn, nhưng php.ini
Phần của trên mysqli hoặc pdo_mysql đang tìm kiếm tệp socket ở một đường dẫn khác.
Điều này xảy ra với tôi ngay cả khi tôi cài đặt cả PHP và MySQL từ MacPorts. Bạn sẽ nghĩ rằng họ đã đồng ý về cấu hình cho hai cổng này.
Chỉnh sửa php.ini
của bạn để đặt vị trí chính xác của tệp socket hoặc chỉ định socket khi bạn bắt đầu kết nối với mysqli hoặc 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")
Xem thêm bài tôi đã viết Error2003-CantConnectToMySQLServer .