Rumah > pembangunan bahagian belakang > tutorial php > Mengapa mysqli_connect Gagal dengan 'kaedah pengesahan tidak diketahui oleh klien [caching_sha2_password]' dan Bagaimana Saya Boleh Membetulkannya?

Mengapa mysqli_connect Gagal dengan 'kaedah pengesahan tidak diketahui oleh klien [caching_sha2_password]' dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Lepaskan: 2024-12-15 08:27:10
asal
647 orang telah melayarinya

Why is mysqli_connect Failing with

Mengatasi Cabaran Pengesahan dalam mysqli_connect

Fungsi mysqli_connect memudahkan sambungan pangkalan data dalam PHP. Walau bagaimanapun, apabila cuba menyambung ke pangkalan data MySQL menggunakan pengesahan caching_sha2_password, pengguna mungkin menghadapi masalah pengesahan. Artikel ini meneroka punca dan menawarkan penyelesaian kepada masalah ini.

Isunya

Dalam coretan kod yang disediakan, tetapan default_authentication_plugin dalam fail MySQL Server ini ialah ditetapkan kepada caching_sha2_password. Konfigurasi ini menghalang pengguna daripada mengesahkan dengan nama pengguna yang tidak mempunyai kata laluan caching_sha2_password yang sepadan. Akibatnya, mesej ralat "Pelayan meminta kaedah pengesahan yang tidak diketahui oleh klien [caching_sha2_password]" dipaparkan.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh sama ada:

  • Tukar tetapan default_authentication_plugin:

    • Tetapkannya kepada mysql_native_password untuk membenarkan pengguna1 log masuk tetapi bukan pengguna2.
  • Ubah suai Pengguna Pengesahan:

    • Gunakan arahan ALTER USER SQL untuk menukar kata laluan untuk user1 dan user2 agar serasi dengan caching_sha2_password:

      • Untuk pengguna sedia ada:

        • UBAH PENGGUNA 'mysqlUsername'@'localhost' DIKENAL PASTI DENGAN mysql_native_password OLEH 'mysqlUsernamePassword';
      • Untuk pengguna baharu:

        • CREATE US localhost' DIKENAL PASTI DENGAN mysql_native_password OLEH 'kata laluan';

Pelaksanaan

Selepas mengubah suai pengesahan tetapan pemalam atau kata laluan pengguna, kod mysqli_connect akan berjaya mewujudkan sambungan ke pangkalan data MySQL.

Kesimpulan

Dengan memahami isu pengesahan yang mendasari dan melaksanakan salah satu daripada penyelesaian yang disediakan, anda boleh mengatasi "kaedah pengesahan yang tidak diketahui oleh pelanggan" ralat semasa menggunakan mysqli_connect dengan pengesahan caching_sha2_password.

Atas ialah kandungan terperinci Mengapa mysqli_connect Gagal dengan 'kaedah pengesahan tidak diketahui oleh klien [caching_sha2_password]' dan Bagaimana Saya Boleh Membetulkannya?. 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