Ketidakserasian PHP MySQL: Menyelesaikan Ralat Misterius
Apabila menyambung ke pangkalan data MySQL jauh melalui PHP 5.3.0, pengguna mungkin menghadapi masalah yang membingungkan ralat, membawa kepada sambungan yang gagal. Mesej amaran biasanya menunjukkan ketidakpadanan dalam jangkaan panjang paket OK dan mekanisme pengesahan yang sudah lapuk.
Setelah disiasat, ia telah mendapati bahawa isu asas berpunca daripada panjang kata laluan akaun MySQL. Jika kata laluan sepanjang 16 aksara, kemungkinan cincang kata laluan lama yang tidak serasi dengan pemacu mysqlnd yang digunakan oleh PHP 5.3.0.
Untuk menyelesaikan isu ini, tetapkan semula kata laluan untuk akaun MySQL yang terjejas menggunakan yang baru. Ini boleh dilakukan dengan melaksanakan pernyataan SQL berikut:
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
Sebagai alternatif yang berpotensi, semak sama ada pelayan MySQL dikonfigurasikan untuk menggunakan atau mencipta kata laluan lama secara lalai. Ini boleh disahkan dengan memeriksa tetapan pelayan. Selain itu, menjalankan pertanyaan berikut pada pelayan yang bermasalah akan memberikan pandangan lanjut:
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
Ganti 'nama pengguna' dengan nama akaun sebenar yang digunakan dalam mysql_connect(). Nilai yang dikembalikan akan menunjukkan panjang dan aksara pertama kata laluan, memberikan lebih banyak maklumat tentang punca ralat.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pangkalan Data MySQL Jauh Saya Dengan PHP 5.3.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!