PHP dengan MySQL 8.0 Ralat Sambungan: Kaedah Pengesahan Tidak Diketahui Pelanggan
Penerangan Masalah
Apabila mewujudkan sambungan antara PHP dan pangkalan data MySQL 8.0, ralat berlaku: "Pelayan meminta kaedah pengesahan tidak diketahui oleh pelanggan." Ralat ini boleh menunjukkan isu dengan pemalam pengesahan yang diberikan kepada pangkalan data.
Jawapan
Pemalam pengesahan lalai dalam MySQL 8 ialah 'auth_socket,' yang memerlukan klien penyambung untuk menggunakan pengesahan berasaskan soket. Walau bagaimanapun, aplikasi PHP biasanya lebih suka pengesahan berasaskan kata laluan. Untuk menyelesaikan isu ini:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Pastikan untuk menggantikan 'kata laluan' dengan kata laluan akar yang dikehendaki. Jika aplikasi anda log masuk menggunakan pengguna lain, gantikan 'root' dengan nama pengguna yang sesuai dalam arahan.
Arahan ini mengubah pemalam pengesahan untuk pengguna 'root' (atau pengguna yang ditentukan) kepada 'mysql_native_password, ' yang menyokong pengesahan berasaskan kata laluan.
Maklumat tambahan boleh didapati di 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 Aplikasi PHP Saya Mendapat Ralat 'Kaedah Pengesahan Tidak Diketahui Pelanggan' Semasa Menyambung ke MySQL 8.0 ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!