Menyelesaikan Isu Ketersambungan MySQL dengan Pengesahan Dihentikan
Apabila cuba menyambung ke pangkalan data MySQL yang dihoskan pada platform seperti bluesql.net, pengguna mungkin menghadapi masalah "Connect Error (2000) mysqlnd tidak boleh menyambung ke MySQL 4.1 menggunakan lama ralat pengesahan". Ralat ini timbul disebabkan oleh perbezaan antara protokol pengesahan yang digunakan oleh versi MySQL yang lebih lama dan versi yang lebih baharu, yang menawarkan sokongan untuk kedua-dua skema kata laluan lama dan baharu.
Untuk menyelesaikan masalah ini, adalah penting untuk menentukan sama ada pelayan itu dikonfigurasikan untuk menggunakan skema kata laluan lama secara lalai. Ini boleh disahkan dengan melaksanakan pertanyaan SQL "TUNJUKKAN PEMBOLEH UBAH SEPERTI 'kata laluan_lama';" daripada baris arahan atau menggunakan alat pengurusan MySQL berasaskan GUI. Jika pertanyaan mengembalikan "kata laluan_lama,Mati", maka akaun pengguna sedia ada mungkin menggunakan kata laluan lama.
Mengesahkan rutin pengesahan yang akan digunakan boleh dilakukan dengan memeriksa jadual "mysql.user". Akaun dengan kata laluan lama mempunyai panjang kata laluan "16", manakala akaun dengan kata laluan baharu mempunyai panjang "41". Untuk menetapkan kata laluan baharu, gunakan "SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');" pertanyaan, menggantikan "Pengguna" dan "Hos" dengan nilai yang diperoleh daripada pertanyaan sebelumnya.
Setelah kata laluan dikemas kini, laksanakan "Keistimewaan FLUSH;" pertanyaan. Sahkan panjang kata laluan menggunakan pertanyaan jadual "mysql.user" yang sama sekali lagi; ia kini sepatutnya "41." Perubahan ini akan membolehkan pelanggan yang menggunakan mysqlnd berjaya menyambung ke pelayan MySQL.
Untuk maklumat lanjut, rujuk dokumentasi MySQL rasmi di pautan berikut:
Atas ialah kandungan terperinci Bagaimana untuk Betulkan MySQL 'mysqlnd tidak boleh menyambung ke MySQL 4.1 menggunakan pengesahan lama' Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!