Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan 'mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]' Ralat?
Apabila membuat sambungan ke pangkalan data MySQL menggunakan php mysqli_connect, ia adalah untuk menghadapi ralat "ralat menyambung ke pangkalan data" dengan mesej tertentu "mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]". Ini biasanya berlaku disebabkan kaedah pengesahan yang dikonfigurasikan pada pelayan MySQL berbeza daripada jangkaan pelanggan.
Dalam kes ini, skrip PHP menggunakan kaedah pengesahan caching_sha2_password, yang memerlukan bukti kelayakan yang sepadan yang ditakrifkan dalam jadual pengguna MySQL. Walau bagaimanapun, nampaknya akaun pengguna1 tidak mempunyai cincang kata laluan yang sepadan untuk caching_sha2_password.
Untuk menyelesaikan isu ini, anda mempunyai beberapa pilihan:
Buat Caching_sha2_password Kata Laluan Hash untuk pengguna1: Keluarkan perintah SQL berikut untuk mencipta caching_sha2_password hash untuk user1:
ALTER USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
Ganti 'new_password' dengan kata laluan selamat pilihan anda. Ini akan mengemas kini cincang kata laluan pengguna1 untuk menggunakan caching_sha2_password, membenarkannya untuk mengesahkan menggunakan kaedah ini.
Paksa caching_sha2_password untuk Cincang Sedia Ada: Jika anda tidak boleh mencipta cincang kata laluan baharu disebabkan oleh sekatan akaun, anda boleh memaksa penggunaan caching_sha2_password untuk cincang sedia ada. Keluarkan arahan SQL berikut:
SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('existing_password');
Ganti 'existing_password' dengan kata laluan semasa untuk pengguna1. Ini akan mengemas kini cincang untuk menggunakan caching_sha2_password tanpa menukar kata laluan itu sendiri.
Setelah anda melakukan salah satu daripada prosedur ini, anda sepatutnya berjaya mewujudkan sambungan ke pangkalan data menggunakan pengesahan caching_sha2_password . Ingat untuk menyemak dokumentasi MySQL untuk mendapatkan butiran tambahan dan pilihan untuk pengurusan kata laluan.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan 'mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]' Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!