Ralat Kaedah Pengesahan dalam PHP dengan MySQL 8.0
Pengguna mungkin menghadapi ralat "Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien" apabila mencuba untuk mewujudkan sambungan antara PHP dan MySQL versi 8.0 .
Root Punca
Ralat ini biasanya berlaku disebabkan oleh ketidakpadanan antara pemalam pengesahan yang dikonfigurasikan dalam MySQL dan jangkaan aplikasi PHP. Dalam MySQL 8, pemalam pengesahan lalai ialah 'auth_socket,' yang menganggap bahawa aplikasi akan menggunakan sambungan soket UNIX tanpa pengesahan berasaskan kata laluan.
Resolusi
Kepada menyelesaikan isu ini, anda boleh mengubah pemalam pengesahan untuk pengguna tertentu atau keseluruhan pelayan MySQL. Begini cara untuk mengubah suainya untuk pengguna 'root':
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Penjelasan
Arahan ini mengubah kaedah pengesahan untuk pengguna 'root' pada 'localhost' kepada 'mysql_native_password.' Gantikan 'kata laluan' dengan kata laluan yang anda inginkan. Selain itu, anda boleh menentukan pengguna atau hos yang disambungkan oleh aplikasi PHP anda jika ia berbeza daripada gabungan 'root'@'localhost'.
Maklumat Tambahan
Jika aplikasi anda menyambung ke pangkalan data menggunakan pengguna bukan root, ubah suai pengguna 'root' dalam arahan SQL dengan pengguna yang sesuai. Pastikan pengguna wujud dan mempunyai kebenaran yang diperlukan untuk mengakses pangkalan data.
Rujuk dokumentasi Lautan Digital tentang Memasang MySQL untuk butiran lanjut tentang mengkonfigurasi kaedah pengesahan.
Atas ialah kandungan terperinci Mengapa Aplikasi PHP Saya Mendapat Ralat 'Kaedah Pengesahan Tidak Diketahui Pelanggan' Apabila Menyambung ke MySQL 8.0 ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!