Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memperbaiki 'Pelayan meminta kaedah pengesahan yang tidak diketahui oleh pelanggan' Ralat dalam MySQL 8.0 dengan PHP?

Bagaimana untuk Memperbaiki 'Pelayan meminta kaedah pengesahan yang tidak diketahui oleh pelanggan' Ralat dalam MySQL 8.0 dengan PHP?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 05:45:15668semak imbas

How to Fix

Ralat MySQL 8.0: Menyelesaikan Ketidakkonsistenan Pengesahan dengan Aplikasi PHP

Pembangun PHP yang menyambung ke pangkalan data MySQL 8.0 mungkin menghadapi ralat "Pelayan meminta pengesahan kaedah yang tidak diketahui oleh pelanggan." Ralat ini biasanya disebabkan oleh ketidakpadanan antara kaedah pengesahan yang digunakan oleh pangkalan data MySQL dan aplikasi PHP.

Konflik Kaedah Pengesahan:

MySQL 8.0 menggunakan caching_sha2_password sebagai kaedah pengesahan lalai, manakala banyak aplikasi PHP mengharapkan untuk menggunakan pengesahan berasaskan kata laluan tradisional. Apabila aplikasi cuba menyambung ke pangkalan data dengan kaedah pengesahan yang salah, pelayan mengembalikan ralat yang disebutkan di atas.

Penyelesaian:

Untuk menyelesaikan isu ini, ia adalah perlu untuk mengubah suai kaedah pengesahan yang digunakan oleh pangkalan data MySQL agar sepadan dengan yang diharapkan oleh aplikasi PHP. Ini boleh dicapai dengan menukar pemalam pengesahan pangkalan data MySQL kepada mysql_native_password, yang menyokong pengesahan berasaskan kata laluan.

Langkah untuk Menukar Pemalam Pengesahan:

  1. Log masuk kepada MySQL sebagai akar pengguna:
mysql -u root -p
  1. Jalankan arahan SQL berikut untuk menukar pemalam pengesahan untuk pengguna root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Ganti 'new_password' dengan kata laluan selamat pilihan anda.

  1. Jika aplikasi PHP anda menggunakan pengguna bukan root, ulangi langkah 2 untuk pengguna itu, menggantikan 'root' dengan nama pengguna yang sesuai.
  2. Mulakan semula perkhidmatan MySQL untuk perubahan berkuat kuasa.

Sumber Tambahan:

Untuk maklumat lanjut tentang topik ini, sila rujuk sumber berikut:

  • [Lautan Digital: Memasang MySQL](https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04)
  • [MySQL Documentation: Default Authentication Plugin](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#sysvar_default_authentication_plugin)

Atas ialah kandungan terperinci Bagaimana untuk Memperbaiki 'Pelayan meminta kaedah pengesahan yang tidak diketahui oleh pelanggan' Ralat dalam MySQL 8.0 dengan PHP?. 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