Mengatasi Ralat Pengesahan dalam MySQL 4.1
Apabila cuba menyambung ke pangkalan data MySQL, pengguna mungkin menghadapi mesej ralat mengenai "pengesahan lama. " Isu ini timbul apabila menyambung ke MySQL 4.1 atau versi yang lebih baru menggunakan kaedah pencincangan kata laluan tradisional.
Mengenal pasti Punca Punca
Sebelum MySQL 4.1, skema pencincangan kata laluan yang berbeza ialah bekerja. Walau bagaimanapun, versi yang lebih baharu memperkenalkan pilihan untuk menggunakan kedua-dua format kata laluan lama dan baharu. Konfigurasi yang mendayakan kata laluan lama kadangkala boleh menyebabkan ralat sambungan ini.
Menyelesaikan Isu
Untuk menentukan sama ada ralat itu berpunca daripada tetapan kata laluan lama, laksanakan pertanyaan SQL berikut :
SHOW VARIABLES LIKE 'old_passwords'
Jika keputusan menunjukkan 'Mati,' ini menunjukkan bahawa ralat mungkin disebabkan oleh kata laluan lama sedia ada entri dalam jadual pengguna. Dalam kes ini, mencipta kata laluan baharu untuk akaun yang terjejas harus menyelesaikan isu tersebut.
Untuk mengesahkan kaedah pencincangan yang akan digunakan untuk akaun tertentu, rujuk jadual 'mysql.user':
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. Jika perlu, tetapkan semula kata laluan menggunakan yang berikut sintaks:
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
Setelah kata laluan dikemas kini, panjang kata laluan harus mencerminkan penggunaan kaedah pencincangan baharu dan ralat sambungan harus dihapuskan.
Atas ialah kandungan terperinci Bagaimanakah Saya Membetulkan Ralat 'Pengesahan Lama' Semasa Menyambung ke MySQL 4.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!