MySQL 8.0 sử dụng plugin xác thực mặc định mới - caching_sha2_password - trong khi MySQL 5.7 sử dụng một cái khác - mysql_native_password . Hiện tại, trình điều khiển Node.js cộng đồng cho MySQL không hỗ trợ cơ chế xác thực phía máy khách tương thích cho plugin máy chủ mới.
Một giải pháp khả thi là thay đổi loại tài khoản người dùng để sử dụng plugin xác thực cũ:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Hoặc tạo một cái khác sử dụng cùng một plugin đó:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Có một yêu cầu kéo đang trong quá trình thực hiện để giải quyết vấn đề một cách chính xác.
Một tùy chọn khác là sử dụng chính thức Trình kết nối MySQL Node.js (tiết lộ đầy đủ:tôi là nhà phát triển chính), dựa trên Giao thức X và đã hỗ trợ chế độ xác thực mới.