Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan 'mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]' Ralat?

Bagaimana untuk Membetulkan 'mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]' Ralat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-13 00:38:10515semak imbas

How to Fix the

Menyelesaikan "mysqli_connect: kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]" Ralat untuk php mysqli_connect

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:

  1. Gunakan mysql_native_password Pengesahan: Tukar tetapan default_authentication_plugin dalam fail Pelayan MySQL ini kepada mysql_native_password, yang serasi dengan cincang kata laluan pengguna1. Ini akan membolehkan pengguna1 melog masuk dengan jayanya.
  2. 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.

  3. 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn