Rumah >pangkalan data >tutorial mysql >Mengapa MySQL 8.0 Mengembalikan 'Kaedah Pengesahan yang Diminta Pelayan Tidak Diketahui Pelanggan'?
Memahami "The Server Requested Authentication Method Unknown to the Client" Ralat
Apabila cuba mewujudkan sambungan ke pangkalan data MySQL daripada PHP, pengguna mungkin menghadapi ralat misteri: "Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien." Kod ralat ini sepadan dengan SQLSTATE[HY000] dan berasal daripada MySQL versi 8.0 dan ke atas.
Sebab Ralat
Punca isu ini biasanya berpunca daripada percanggahan antara mekanisme pengesahan yang digunakan oleh pangkalan data MySQL dan jangkaan aplikasi klien (PHP dalam kes ini). Secara lalai, MySQL 8.0 menggunakan pemalam pengesahan 'auth_socket', manakala banyak aplikasi menjangkakan pengesahan melalui log masuk yang dilindungi kata laluan.
Penyelesaian
Untuk menangani masalah ini, pengguna mesti mengubah suai pemalam pengesahan yang digunakan oleh pangkalan data MySQL mereka untuk menyelaraskan dengan keperluan aplikasi klien mereka. Berikut ialah langkah-langkahnya:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Jadi pastikan untuk menggantikan 'kata laluan' dengan kata laluan root yang anda inginkan. Jika aplikasi klien anda bersambung menggunakan pengguna lain, gantikan 'root' dalam arahan dengan nama pengguna yang sesuai.
Cerapan Tambahan
Penjelasan lanjut tentang isu ini boleh didapati dalam dokumentasi Digital Ocean tentang Memasang MySQL: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04.
Atas ialah kandungan terperinci Mengapa MySQL 8.0 Mengembalikan 'Kaedah Pengesahan yang Diminta Pelayan Tidak Diketahui Pelanggan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!