Penolakan Sambungan PHP dengan SQLSTATE[HY000] [2002]
Apabila cuba mewujudkan sambungan pangkalan data dalam PHP, menghadapi ralat "SQLSTATE [HY000] [2002] Sambungan ditolak" menunjukkan bahawa percubaan sambungan gagal disebabkan oleh komunikasi rangkaian isu. Ini boleh diselesaikan dengan menangani aspek berikut:
Konfigurasi Port Salah:
Kod yang diberikan menetapkan nama hos sebagai "127.0.0.1" tetapi tidak menyatakan port secara eksplisit. Apabila menggunakan MAMP, MySQL dijalankan pada port 8889 dan bukannya 3306 lalai. Untuk menyelesaikannya, ubah suai kod sambungan untuk memasukkan port yang betul:
$conn = new PDO("mysql:host=$servername;port=8889;dbname=AppDatabase", $username, $password);
Sekatan Firewall atau Rangkaian:
Pastikan tetapan tembok api atau konfigurasi rangkaian tidak menyekat akses kepada pelayan pangkalan data. Sahkan bahawa port 8889 dibenarkan untuk sambungan masuk pada pelayan.
Konfigurasi Nama Hos yang Betul:
Menggunakan "127.0.0.1" untuk nama hos dalam MAMP sepatutnya berfungsi, tetapi jika ia masih memberikan ralat "Tiada fail atau direktori sedemikian", cuba gunakan "localhost" sebaliknya. Isu ini mungkin berkaitan dengan konfigurasi pelayan tertentu.
Atas ialah kandungan terperinci Mengapa kod PHP saya mengembalikan \'SQLSTATE[HY000] [2002] Sambungan ditolak\' apabila menyambung ke pangkalan data MySQL saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!