Menyelesaikan "Tidak Dapat Menyambung ke MySQL 4.1 menggunakan Isu Pengesahan Lama"
Apabila cuba mewujudkan sambungan ke pangkalan data MySQL, anda mungkin menghadapi ralat "Connect Error (2000) mysqlnd tidak boleh menyambung ke MySQL 4.1 menggunakan pengesahan lama" mesej. Ralat ini timbul disebabkan oleh mekanisme penyulitan kata laluan usang yang digunakan oleh versi MySQL terdahulu.
Memahami Punca Punca
Versi MySQL sebelum 4.1 melaksanakan skema pencincangan kata laluan yang berbeza. Versi yang lebih baharu memberikan fleksibiliti untuk menggunakan sama ada kaedah pencincangan warisan atau moden. Jika pelayan dikonfigurasikan untuk menggunakan pendekatan kuno, pengguna dengan kata laluan dicincang menggunakan skema lama berpotensi menghadapi ralat ini.
Penyelesaian Masalah dan Penyelesaian
Untuk membetulkan isu tersebut , ikut langkah ini:
-
Sahkan Pelayan Tetapan: Gunakan pertanyaan SQL "TUNJUK PEMBOLEH UBAH SEPERTI 'kata laluan_lama'" untuk menentukan sama ada pelayan menggunakan kaedah pencincangan kata laluan yang sudah lapuk. Jawapan "old_passwords,Off" menunjukkan kehadiran rekod kata laluan lama dalam jadual pengguna.
-
Periksa Akaun Pengguna: Jalankan pertanyaan "PILIH Pengguna, Hos, Panjang(Kata Laluan) DARI mysql.user" untuk menyemak algoritma pencincangan kata laluan bagi setiap akaun pengguna. Panjang kata laluan 16 menandakan pencincangan lama, manakala panjang 41 menandakan pencincangan moden.
-
Kemas kini Kata Laluan (jika berkenaan): Jika akaun(-akaun) yang dipersoalkan menggunakan pencincangan lama kaedah, tetapkan semula kata laluan mereka menggunakan sintaks "SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');".
-
Refresh Privileges: Selepas mengemas kini kata laluan, laksanakan "FLUSH Privileges;" untuk mengemas kini keistimewaan akses.
Sumber Tambahan
Untuk maklumat lanjut, rujuk dokumentasi rasmi MySQL:
- [ Pelanggan Lama Keserasian](http://dev.mysql.com/doc/refman/5.0/en/old-client.html)
- [Pencincangan Kata Laluan](http://dev.mysql.com/doc/ refman/5.0/ms/password-hashing.html)
- [TETAPKAN KATA LALUAN Sintaks](http://dev.mysql.com/doc/refman/5.0/en/set-password.html)
Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki Ralat 'mysqlnd tidak dapat menyambung ke MySQL 4.1 menggunakan pengesahan lama'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!