Rumah >pangkalan data >tutorial mysql >Mengapa MySQL 8.0 Mengembalikan 'Kaedah Pengesahan yang Diminta Pelayan Tidak Diketahui Pelanggan'?

Mengapa MySQL 8.0 Mengembalikan 'Kaedah Pengesahan yang Diminta Pelayan Tidak Diketahui Pelanggan'?

DDD
DDDasal
2024-12-10 20:03:12917semak imbas

Why Does MySQL 8.0 Return

Memahami "The Server Requested Authentication Method Unknown to the Client" Ralat

Apabila cuba mewujudkan sambungan ke pangkalan data MySQL daripada PHP, pengguna mungkin menghadapi ralat misteri: "Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien." Kod ralat ini sepadan dengan SQLSTATE[HY000] dan berasal daripada MySQL versi 8.0 dan ke atas.

Sebab Ralat

Punca isu ini biasanya berpunca daripada percanggahan antara mekanisme pengesahan yang digunakan oleh pangkalan data MySQL dan jangkaan aplikasi klien (PHP dalam kes ini). Secara lalai, MySQL 8.0 menggunakan pemalam pengesahan 'auth_socket', manakala banyak aplikasi menjangkakan pengesahan melalui log masuk yang dilindungi kata laluan.

Penyelesaian

Untuk menangani masalah ini, pengguna mesti mengubah suai pemalam pengesahan yang digunakan oleh pangkalan data MySQL mereka untuk menyelaraskan dengan keperluan aplikasi klien mereka. Berikut ialah langkah-langkahnya:

  1. Akses pangkalan data MySQL sebagai pengguna 'root'.
  2. Laksanakan arahan SQL berikut:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

Jadi pastikan untuk menggantikan 'kata laluan' dengan kata laluan root yang anda inginkan. Jika aplikasi klien anda bersambung menggunakan pengguna lain, gantikan 'root' dalam arahan dengan nama pengguna yang sesuai.

Cerapan Tambahan

Penjelasan lanjut tentang isu ini boleh didapati dalam dokumentasi Digital Ocean tentang Memasang MySQL: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04.

Atas ialah kandungan terperinci Mengapa MySQL 8.0 Mengembalikan 'Kaedah Pengesahan yang Diminta Pelayan Tidak Diketahui Pelanggan'?. 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