Tidak Dapat Mewujudkan Sambungan ke MySQL 4.1 dengan Pengesahan Legasi
Apabila cuba menyambung ke pangkalan data MySQL yang dihoskan di bluesql.net, anda boleh menghadapi ralat yang menunjukkan ketidakupayaan untuk mewujudkan sambungan menggunakan mekanisme pengesahan lapuk yang digunakan dalam versi MySQL sebelum ini kepada 4.1. Isu ini berpunca daripada pelaksanaan kaedah pengesahan yang lebih baharu dalam keluaran MySQL berikutnya, manakala skema kata laluan yang lebih lama mungkin masih berterusan, berpotensi menghalang keserasian dengan aplikasi tertentu.
Dalam kes anda, anda menggunakan PHP 5.3 dan sambungan mySQLi ( mysqli(...)) baru untuk menyambung ke pangkalan data. Untuk menangani isu ini tanpa perlu menurunkan versi PHP anda, anda harus mempertimbangkan langkah berikut:
Mengesahkan Penggunaan Skema Kata Laluan Lama
Tentukan sama ada pelayan MySQL yang anda cuba untuk mengakses dikonfigurasikan untuk menggunakan skema kata laluan lama dengan melaksanakan SQL berikut pertanyaan:
SHOW VARIABLES LIKE 'old_passwords'
Jika hasil pertanyaan memaparkan "kata laluan_lama,Mati," ini menunjukkan bahawa pelayan dikonfigurasikan untuk menggunakan skema kata laluan lama.
Mengenal pasti Akaun dengan Kata Laluan Lama
Periksa jadual mysql.user untuk mengenal pasti akaun pengguna yang masih menggunakan lama kata laluan. Jalankan pertanyaan berikut:
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
Akaun dengan kata laluan lama akan mempunyai panjang kata laluan "16", manakala akaun dengan kata laluan baharu akan mempunyai panjang "41."
Menetapkan Kata Laluan Baharu untuk Akaun Terjejas
Untuk setiap akaun yang dikenal pasti dengan kata laluan lama, tetapkan kata laluan baharu menggunakan yang berikut arahan:
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
Ganti "Pengguna" dan "Hos" dengan nilai yang diperoleh daripada pertanyaan sebelumnya.
Mengesahkan Kemas Kini Kata Laluan
Semak semula panjang kata laluan untuk akaun yang dikemas kini. Ia kini sepatutnya memaparkan "41," yang menunjukkan bahawa skema kata laluan baharu sedang digunakan.
Dengan mematuhi langkah-langkah ini, anda boleh berjaya mengatasi isu keserasian pengesahan dan mewujudkan sambungan ke pangkalan data MySQL di bluesql.net .
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke MySQL 4.1 dengan Pengesahan Warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!