Rumah > pembangunan bahagian belakang > tutorial php > Mengapa mysqli_connect Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (caching_sha2_password)'?

Mengapa mysqli_connect Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (caching_sha2_password)'?

Linda Hamilton
Lepaskan: 2024-12-13 13:05:10
asal
462 orang telah melayarinya

Why Does mysqli_connect Fail with

mysqli_connect Ralat: Kaedah Pengesahan Tidak Diketahui (caching_sha2_password)

Apabila cuba untuk mengesahkan dengan MySQL menggunakan mysqli_connect, anda mungkin menghadapi ralat:

mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
Salin selepas log masuk

Ralat ini berlaku apabila MySQL Pemalam pengesahan lalai pelayan ditetapkan kepada caching_sha2_password, yang tidak serasi dengan konfigurasi akaun pengguna tertentu.

Penyelesaian masalah:

Untuk menyelesaikan isu ini, dua penyelesaian tersedia:

  1. Ubah Pengesahan Pengguna Pemalam:

    Jalankan arahan SQL berikut untuk menukar pemalam pengesahan untuk pengguna yang terjejas:

    ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';
    Salin selepas log masuk

    Ganti nama pengguna dan nama hos dengan nilai yang sesuai untuk pengguna anda.

  2. Ubah suai Pelayan MySQL Ini Fail:

    Edit fail ini Pelayan MySQL (my.ini atau my.cnf) dan tukar tetapan default_authentication_plugin kepada mysql_native_password:

    [mysqld]
    default_authentication_plugin=mysql_native_password
    Salin selepas log masuk

    Mulakan semula Pelayan MySQL selepas membuat tukar.

Petua Tambahan:

  • Jika anda mencipta pengguna baharu, gunakan arahan berikut dengan pengesahan mysql_native_password :

    CREATE USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'password';
    Salin selepas log masuk
  • Berikan keistimewaan yang diperlukan kepada pengguna selepas mengubah pemalam pengesahan atau mengubah suai fail Server ini.

Dengan mengikuti langkah-langkah ini, anda boleh berjaya mengesahkan dengan MySQL menggunakan mysqli_connect walaupun apabila pemalam pengesahan caching_sha2_password didayakan.

Atas ialah kandungan terperinci Mengapa mysqli_connect Gagal dengan 'Kaedah Pengesahan Tidak Diketahui (caching_sha2_password)'?. 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