Apabila menyambungkan pelayan Node.js ke pangkalan data MySQL, anda mungkin menghadapi ralat "ER_NOT_SUPPORTED_AUTH_AUTH tidak menyokong protokol pengesahan yang diminta oleh pelayan." Isu ini timbul apabila klien dan pelayan menggunakan kaedah pengesahan yang berbeza.
Analisis Isu
Mesej ralat menunjukkan bahawa pelayan MySQL dikonfigurasikan untuk menggunakan protokol pengesahan yang lebih baharu yang tidak disokong oleh pelanggan Node.js. Ini boleh berlaku jika versi klien Node.js sudah lapuk.
Penyelesaian
Untuk menyelesaikan isu ini, tingkatkan klien Node.js untuk menyokong protokol pengesahan yang lebih baharu yang digunakan oleh pelayan MySQL. Untuk MySQL v8.0, ikuti langkah berikut:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES;
Ingat untuk menggantikan 'root' dan 'password' dengan nama pengguna sebenar dan kata laluan yang dikehendaki. Perubahan ini perlu digunakan pada pengguna yang cuba menyambung.
Coretan Kod (Dikemas kini)
Selepas mengemas kini konfigurasi MySQL dan keistimewaan pengguna, Node. coretan sambungan js harus dikemas kini untuk menggunakan perpustakaan mysql2, yang menyokong pengesahan yang lebih baru protokol:
const mysql = require('mysql2'); const connection = mysql.createConnection({ host : 'localhost', user : 'root', password : 'password', database : 'foobarDb' });
Dengan melaksanakan langkah-langkah ini, anda boleh berjaya mewujudkan sambungan antara pelayan Node.js anda dan pangkalan data MySQL, menghapuskan ralat "ER_NOT_SUPPORTED_AUTH_MODE".
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'ER_NOT_SUPPORTED_AUTH_MODE' Semasa Menyambungkan Node.js ke MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!