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:
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:
Untuk pengguna baharu:
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!