O MySQL 8.0 usa um novo plug-in de autenticação padrão - caching_sha2_password - enquanto o MySQL 5.7 usava um diferente - mysql_native_password . Atualmente, os drivers Node.js da comunidade para MySQL não suportam mecanismos de autenticação do lado do cliente compatíveis para o novo plug-in do servidor.
Uma possível solução é alterar o tipo de conta de usuário para usar o plug-in de autenticação antigo:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';
Ou crie um diferente que use esse mesmo plugin:
CREATE USER 'foo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'bar';
Há uma solicitação pull em andamento para resolver adequadamente o problema.
Outra opção é usar o oficial Conector MySQL Node.js (divulgação completa:sou o desenvolvedor líder), que é baseado no Protocolo X e já suporta o novo modo de autenticação.