"MySQL 8.0: Ralat Pengesahan Selesai - Ketidakserasian Pelanggan"
Pengguna yang menghadapi ralat "Klien tidak menyokong protokol pengesahan yang diminta oleh pelayan" apabila cuba menyambung ke MySQL 8.0 kerap mengalami masalah ini. Ini berlaku apabila versi klien MySQL tidak serasi dengan protokol pengesahan yang digunakan oleh pelayan MySQL.
Memahami Masalah
MySQL 8.0 memperkenalkan kaedah pengesahan baharu yang dipanggil SCRAM- SHA-256. Jika klien MySQL kekurangan sokongan untuk kaedah ini, ia akan gagal mewujudkan sambungan, mengakibatkan ralat yang dinyatakan di atas.
Penyelesaian:
1. Semak Keserasian Pelanggan:
Sahkan sama ada versi klien MySQL serasi dengan MySQL 8.0. Jika tidak, tingkatkan klien kepada versi terkini.
2. Tetapkan Semula Pengesahan Pengguna:
Menggunakan MySQL Workbench atau alat lain, laksanakan pertanyaan berikut:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
Pastikan untuk menggantikan 'root' dan 'password' dengan nama pengguna dan kata laluan sebenar anda , masing-masing.
3. Cuba Semula Sambungan:
Cuba untuk mewujudkan sambungan ke pelayan MySQL sekali lagi menggunakan kod node.js yang disediakan. Jika kaedah pengesahan SCRAM-SHA-256 kini disokong oleh pelanggan, sambungan akan berjaya diwujudkan.
4. Pembetulan alternatif:
Jika langkah di atas tidak menyelesaikan isu, alih keluar bahagian @'localhost' daripada spesifikasi pengguna dalam pertanyaan ALTER USER, iaitu:
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY 'password';
5. Sahkan Sambungan Aktif:
Semak konsol MySQL atau jalankan pertanyaan berikut untuk mengesahkan bahawa sambungan itu aktif:
SELECT USER();
Jika ia mengembalikan nama pengguna anda, sambungan berjaya diwujudkan .
Atas ialah kandungan terperinci Ralat Pengesahan MySQL 8.0: Bagaimana untuk Membetulkan 'Pelanggan tidak menyokong protokol pengesahan yang diminta oleh pelayan'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!