Mengatasi Ketidakserasian MySQL PHP
Apabila cuba menyambung ke pangkalan data MySQL jauh menggunakan PHP 5.3.0, pengguna mungkin menghadapi isu pelik yang terhasil dalam ralat yang berkaitan dengan panjang paket dan pengesahan lama. Ketidakserasian ini berlaku apabila menyambung ke pangkalan data yang menjalankan MySQL versi 5.0.22, manakala sambungan ke pangkalan data lain dengan versi 5.0.45 berjaya.
Menyingkap Punca Punca
Punca asas ketidakserasian ini terletak pada kata laluan akaun MySQL. Jika kata laluan ialah rentetan 16 aksara yang lebih lama, sambungan mysqlnd MySQL tidak dapat menggunakannya untuk mewujudkan sambungan ke pelayan MySQL.
Menyelesaikan Isu
Untuk betulkan isu ini, dua laluan penyelesaian boleh diikuti:
Tetapkan Semula Kata Laluan Pengguna:
Semak Tetapan Pelayan:
Menentukan Panjang Kata Laluan
Untuk menentukan panjang kata laluan pengguna yang terjejas, laksanakan pertanyaan berikut pada pelayan MySQL yang bermasalah:
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
Ganti 'nama pengguna' dengan nama pengguna sebenar yang digunakan dalam fungsi mysql_connect().
Jika pertanyaan mengembalikan panjang 16 dan aksara pertama ialah '*', ia mengesahkan bahawa kata laluan itu ialah cincangan 16 aksara lama. Ini menandakan keperluan untuk menetapkan semula kata laluan menggunakan kaedah yang dinyatakan sebelum ini.
Dengan menangani isu kata laluan yang sudah lapuk, anda boleh berjaya menyambung ke pangkalan data MySQL jauh menggunakan PHP 5.3.0, menyelesaikan ketidakserasian yang dihadapi.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pangkalan Data MySQL Saya dengan PHP 5.3.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!