Menyelesaikan Isu Pengesahan Apabila Menyambung ke MySQL 4.1
Apabila cuba menyambung ke pangkalan data MySQL yang dihoskan di bluesql.net, ralat mungkin timbul menunjukkan bahawa mysqlnd tidak boleh menyambung menggunakan pengesahan lama. Ralat ini berpunca daripada pemberhentian skim kata laluan lama dalam versi MySQL selepas 4.1. Walaupun versi yang lebih baharu membenarkan keserasian ke belakang, ia kadangkala boleh menyebabkan masalah ketersambungan.
Untuk menangani isu ini, anda boleh menyemak sama ada pelayan ditetapkan untuk menggunakan skema kata laluan lama dengan melaksanakan pertanyaan berikut:
SHOW VARIABLES LIKE 'old_passwords';
Jika ia mengembalikan kata laluan lama,Mati, ini menunjukkan bahawa isu mungkin terletak pada entri kata laluan lama dalam jadual pengguna. Pelayan akan lalai kepada rutin pengesahan lama untuk akaun ini. Menyelesaikan perkara ini memerlukan penetapan kata laluan baharu, yang akan mencetuskan penggunaan rutin baharu.
Untuk mengesahkan rutin pengesahan yang digunakan oleh akaun tertentu, anda boleh menanyakan jadual mysql.user:
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user;
Pertanyaan ini akan mengembalikan panjang kata laluan. Panjang 16 menunjukkan kata laluan lama, manakala 41 mewakili kata laluan baharu.
Jika kata laluan sudah lapuk, anda boleh sama ada menggunakan alatan pengurusan MySQL atau laksanakan pertanyaan berikut untuk mengemas kininya:
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
Pastikan untuk menggantikan Pengguna dan Hos dengan nilai yang diperoleh daripada pertanyaan sebelumnya. Selepas melaksanakan pertanyaan ini, sahkan panjang kata laluan sekali lagi. Ia kini sepatutnya 41, membolehkan pelanggan anda menyambung dengan jayanya.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pangkalan Data MySQL 4.1 Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!