Isu Pengesahan Node.js dengan MySQL 8.0
Apabila cuba menyambung ke pangkalan data MySQL dengan akaun akar menggunakan Node.js, tertentu isu mungkin timbul. Ini amat relevan dengan MySQL 8.0, di mana pemalam pengesahan lalai telah berubah daripada mysql_native_password kepada caching_sha2_password.
Mesej Ralat dan Punca
Apabila cuba menyambung ke MySQL 8.0 dengan aplikasi Node.js, ralat berikut mungkin berlaku:
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
Ralat ini menunjukkan bahawa pemacu MySQL Node.js tidak dapat menggunakan pemalam pengesahan baharu yang diperkenalkan dalam MySQL 8.0.
Penyelesaian:
Untuk menyelesaikan isu dan menyambung ke MySQL 8.0 menggunakan akaun akar, pemalam mysql_native_password boleh digunakan dan bukannya caching_sha2_password lalai. Ini boleh dicapai melalui salah satu kaedah berikut:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Penyelesaian Alternatif:
Sebagai alternatif, pihak rasmi Penyambung MySQL Node.js, yang berdasarkan Protokol X, boleh digunakan. Penyambung ini menyokong mod pengesahan baharu dalam MySQL 8.0.
Atas ialah kandungan terperinci Mengapa Apl Node.js Saya Gagal Mengesahkan dengan MySQL 8.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!