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
Lepaskan: 2024-12-13 00:38:10
asal
613 orang telah melayarinya

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';
    Salin selepas log masuk

    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');
    Salin selepas log masuk

    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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan