Rumah > pangkalan data > tutorial mysql > Mengapa mysqli_connect() Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (Caching_sha2_password)'?

Mengapa mysqli_connect() Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (Caching_sha2_password)'?

Mary-Kate Olsen
Lepaskan: 2024-12-21 22:54:34
asal
897 orang telah melayarinya

Why Does mysqli_connect() Fail with

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

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!

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