Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Betulkan 'mysqli_connect: kaedah pengesahan yang tidak diketahui oleh pelanggan [caching_sha2_password]' Ralat dalam PHP?

Bagaimana untuk Betulkan 'mysqli_connect: kaedah pengesahan yang tidak diketahui oleh pelanggan [caching_sha2_password]' Ralat dalam PHP?

Patricia Arquette
Lepaskan: 2024-12-28 07:14:46
asal
898 orang telah melayarinya

How to Fix the

Mengurangkan "mysqli_connect: kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]" dalam PHP

Apabila menggunakan mysqli_connect MySQL untuk mengesahkan dengan pangkalan data tempatan , anda mungkin menghadapi ralat misteri, "mysqli_connect(): Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]." Ralat ini timbul daripada ketidakpadanan antara pemalam pengesahan yang digunakan oleh pelayan dan pemalam yang dijangkakan oleh pelanggan.

Fail MySQL Server ini menentukan pemalam pengesahan lalai yang digunakan untuk sambungan pelayan. Secara lalai, tetapan ini dikonfigurasikan kepada "caching_sha2_password," yang menunjukkan bahawa pelayan memilih kaedah pengesahan caching_sha2_password. Dalam kes anda, pelayan anda telah dikonfigurasikan dengan sewajarnya.

Sebaliknya, kod PHP anda cuba menyambung menggunakan kaedah pengesahan lama, seperti kaedah "mysql_native_password". Ketidakpadanan ini menyebabkan kegagalan pengesahan dan mengakibatkan ralat yang disebutkan di atas.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh mengubah suai kaedah pengesahan yang digunakan oleh kod PHP untuk dipadankan tetapan lalai pelayan. Sebagai alternatif, anda boleh mengubah fail MySQL Server ini untuk menentukan pemalam pengesahan yang serasi dengan kod PHP. Berikut ialah beberapa penyelesaian yang berpotensi:

  • Dayakan pemalam mysql_native_password pada Pelayan MySQL:

    • Buka fail MySQL Server ini dan cari parameter "default_authentication_plugin".
    • Tukar nilainya kepada "mysql_native_password."
  • Ubah suai kod PHP untuk menggunakan pemalam caching_sha2_password:

    • Gunakan fungsi mysqli_options() untuk menetapkan MYSQLI_PLUGOPT. "caching_sha2_password."

Sebagai alternatif, anda boleh menukar kaedah pengesahan pengguna MySQL kepada mysql_native_password menggunakan arahan SQL:

  • Ubah pengguna sedia ada :

    • Jalankan arahan SQL: UBAH PENGGUNA 'mysqlUsername'@'localhost' DIKENALPASTI DENGAN mysql_native_password OLEH 'mysqlUsernamePassword';
  • Buat pengguna baharu dengan mysql_native_password🎜>

    SQL: perintah: BUAT PENGGUNA 'jeffrey'@'localhost' DIKENAL PASTI DENGAN mysql_native_password OLEH 'kata laluan';
  • Dengan melaksanakan penyelesaian ini, anda boleh menyelaraskan kaedah pengesahan yang digunakan oleh pelayan MySQL dan Pelanggan PHP, membolehkan anda berjaya mewujudkan sambungan ke pangkalan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Betulkan 'mysqli_connect: kaedah pengesahan yang tidak diketahui oleh pelanggan [caching_sha2_password]' Ralat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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