Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat 'Kaedah Pengesahan mysqli_connect Tidak Diketahui ([caching_sha2_password])'?

Mengapa Saya Mendapat Ralat 'Kaedah Pengesahan mysqli_connect Tidak Diketahui ([caching_sha2_password])'?

Mary-Kate Olsen
Lepaskan: 2024-12-17 11:02:26
asal
348 orang telah melayarinya

Why Am I Getting a

Ralat Pengesahan Selesai: mysqli_connect Kaedah Pengesahan Tidak Diketahui ([caching_sha2_password])

Apabila menyambung ke pangkalan data MySQL menggunakan mysqli_connect PHP, anda mungkin menghadapi ralat berikut: "Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]". Isu ini timbul apabila Pelayan MySQL dikonfigurasikan untuk menggunakan kaedah pengesahan caching_sha2_password, yang tidak disokong secara asli oleh akaun pengguna tertentu atau mungkin memerlukan konfigurasi tambahan.

Punca Ralat:

Kaedah pengesahan caching_sha2_password ialah kaedah selamat yang digunakan oleh Pelayan MySQL untuk penyimpanan kata laluan dan pengesahan. Ia menggantikan kaedah mysql_native_password yang lebih lama dan meningkatkan keselamatan dengan menyimpan kata laluan dalam bentuk cincang. Secara lalai, caching_sha2_password menjadi kaedah pengesahan lalai apabila syarat tertentu dipenuhi.

Menyelesaikan Isu:

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

  1. Tukar Akaun Pengguna kepada mysql_native_password:
  • Jalankan arahan SQL berikut untuk menukar akaun pengguna untuk menggunakan kaedah pengesahan mysql_native_password:
ALTER USER '<mysqlUsername>'@'localhost' IDENTIFIED WITH mysql_native_password BY '<mysqlUsernamePassword>';
Salin selepas log masuk
  1. Ubah suai Pelayan MySQL Konfigurasi:
  • Buka fail konfigurasi Pelayan MySQL (biasanya dinamakan my.cnf) dan navigasi ke bahagian [mysqld].
  • Tukar nilai Tetapan "default_authentication_plugin" daripada caching_sha2_password kepada mysql_native_password:
[mysqld]
default_authentication_plugin=mysql_native_password
Salin selepas log masuk

Nota:

Selepas membuat perubahan pada fail konfigurasi Pelayan MySQL, anda perlu memulakan semula Pelayan MySQL untuk perubahan itu berkuat kuasa.

Mencipta Pengguna Baharu dengan mysql_native_password:

Apabila mencipta pengguna baharu dengan pengesahan mysql_native_password, gunakan arahan berikut:
CREATE USER '<mysqlUsername>'@'localhost' IDENTIFIED WITH mysql_native_password BY '<mysqlUsernamePassword>';
Salin selepas log masuk

Pertimbangan Tambahan:

  • Pastikan bahawa pengguna yang anda gunakan untuk menyambung ke pangkalan data mempunyai kebenaran yang sesuai.
  • Semak log ralat Pelayan MySQL untuk sebarang mesej ralat tambahan yang mungkin memberikan lebih banyak konteks.
  • Pertimbangkan untuk mengemas kini algoritma pencincangan kata laluan pada Pelayan MySQL untuk meningkatkan keselamatan lagi.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Kaedah Pengesahan mysqli_connect Tidak Diketahui ([caching_sha2_password])'?. 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