sql >> Base de Datos >  >> RDS >> Mysql

Node.js no puede autenticarse en MySQL 8.0

MySQL 8.0 utiliza un nuevo complemento de autenticación predeterminado:caching_sha2_password - mientras que MySQL 5.7 usaba uno diferente - mysql_native_password . Actualmente, los controladores comunitarios de Node.js para MySQL no son compatibles con los mecanismos de autenticación del lado del cliente para el nuevo complemento del servidor.

Una posible solución es modificar el tipo de cuenta de usuario para usar el antiguo complemento de autenticación:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

O cree uno diferente que use ese mismo complemento:

CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';

Hay una solicitud de extracción en tramitación para abordar adecuadamente el problema.

Otra opción es usar el oficial Conector MySQL Node.js (divulgación completa:soy el desarrollador principal), que se basa en Protocolo X y ya es compatible con el nuevo modo de autenticación.