Apabila cuba mewujudkan sambungan ke pangkalan data MySQL menggunakan kelas mysqli dalam PHP, ralat mungkin timbul:
mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
Ralat ini menunjukkan isu dengan sambungan melalui soket yang ditentukan, 'MySQL'.
Apabila menyambung ke localhost menggunakan "localhost" sebagai hos, MySQL cuba menggunakan soket domain Unix untuk sambungan yang lebih pantas dan berpotensi lebih selamat. Walau bagaimanapun, jika soket tidak dikonfigurasikan atau boleh diakses, sambungan gagal dengan ralat 2.
Untuk menyelesaikan isu ini, beberapa pendekatan boleh diambil:
1. Menggunakan TCP/IP Daripada Soket Unix:
Ganti "localhost" dengan alamat IP 127.0.0.1 dalam rentetan sambungan anda. Ini akan memaksa sambungan TCP/IP.
2. Menetapkan mysqli.default_socket:
Cari fail konfigurasi my.cnf untuk MySQL dan kenal pasti laluan ke soket. Kemudian, buka fail php.ini dan tetapkan nilai 'mysqli.default_socket' ke laluan ini.
3. Mengkonfigurasi Soket dalam Skrip PHP:
Sertakan laluan soket secara langsung dalam skrip PHP apabila membuat sambungan, seperti yang ditunjukkan di bawah:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Dengan melaksanakan salah satu daripada penyelesaian ini , anda boleh memintas sambungan soket Unix dan mewujudkan sambungan yang berjaya ke pangkalan data MySQL anda.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya melalui Kelas mysqli PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!