mysqli_connect: Kaedah Pengesahan Tidak Diketahui (Caching_sha2_password)
Latar Belakang:
Apabila menggunakan MySQL's my () fungsi, ralat boleh timbul: "error: mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien." Ini menunjukkan ketidakpadanan antara kaedah pengesahan yang digunakan oleh pelayan dan yang dilaksanakan oleh klien.
Secara khusus, jika pelayan MySQL ditetapkan untuk menggunakan kaedah pengesahan caching_sha2_kata laluan, ralat boleh berlaku apabila klien tidak menyokong atau tidak dikonfigurasikan untuk menggunakan kaedah itu.
Menyelesaikan masalah dan Penyelesaian:
Dalam kes yang diberikan, Pelayan MySQL dikonfigurasikan untuk menggunakan pengesahan caching_sha2_password, yang klien PHP tidak dilengkapi untuk mengendalikan. Untuk menyelesaikan isu ini, anda boleh:
1. Ubah suai Konfigurasi Pelayan MySQL:
Tukar tetapan default_authentication_plugin dalam fail ini MySQL (my.ini pada Windows, /etc/my.cnf pada Linux) daripada caching_sha2_password kepada mysql_native_password. Ini akan membolehkan pelayan menggunakan kaedah pengesahan yang lebih lama.
2. Kemas kini Pelanggan PHP:
Naik taraf klien PHP MySQL kepada versi yang menyokong pengesahan caching_sha2_password. Walau bagaimanapun, ini mungkin tidak perlu, kerana perubahan konfigurasi pelayan harus membetulkan isu tersebut.
3. Tetapkan Pengesahan Pengguna:
Jalankan arahan SQL berikut dalam MySQL:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Arahan ini akan mengubah kaedah pengesahan untuk pengguna yang ditentukan kepada mysql_native_password, membenarkan mereka menyambung walaupun tetapan cache_sha2_kata laluan pelayan.
Atas ialah kandungan terperinci Mengapa mysqli_connect() Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (Caching_sha2_password)'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!