Menyelesaikan masalah "Amaran: mysql_connect(): [2002] Tiada fail atau direktori sedemikian" Ralat
Ralat ini biasanya berlaku apabila cuba menyambung ke pangkalan data MySQL menggunakan fungsi mysql_connect() PHP. Walaupun sambungan mungkin berfungsi dengan baik melalui penyemak imbas web, ia gagal apabila dilaksanakan melalui Terminal.
Dalam kes ini, isu ini timbul disebabkan percanggahan dalam lokasi fail soket yang diperlukan. Secara lalai, macOS menyimpan fail soket sama ada dalam /tmp/mysql.sock atau /var/mysql/mysql.sock. Walau bagaimanapun, PHP mungkin mencari di lokasi yang salah.
Untuk menyelesaikan masalah ini, buat pautan simbolik antara kedua-dua lokasi untuk memastikan PHP boleh mencari fail soket tanpa mengira di mana ia dijangka menemuinya.
Untuk sistem dengan /tmp/mysql.sock tetapi tidak /var/mysql/mysql.sock:
cd /var sudo mkdir mysql sudo chmod 755 mysql cd mysql sudo ln -s /tmp/mysql.sock mysql.sock
Untuk sistem dengan /var/mysql/mysql.sock tetapi tiada /tmp/mysql.sock:
cd /tmp ln -s /var/mysql/mysql.sock mysql.sock
Melaksanakan arahan ini sebagai pengguna istimewa (cth., dengan sudo) akan mencipta direktori dan pautan yang diperlukan. Setelah pautan simbolik diwujudkan, PHP sepatutnya berjaya menyambung ke pangkalan data MySQL melalui Terminal.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Amaran: mysql_connect(): [2002] Tiada fail atau direktori sedemikian' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!