ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
In MySQL Workbench, open a blank Query page and execute these commands (Query > Execute (All or Selection)):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges;
This is what it will look like in Workbench:

ER_ACCESS_DENIED_ERROR: Access denied for user ‘root’@’localhost’ (using password: YES)
In the part of your Node application where you define the connection to the MySQL database, set password
to an empty string:
const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '' });
After you re-run your server, the error will go away, but you may be left with a new error– the error below:
ER_MUST_CHANGE_PASSWORD_LOGIN: Your password has expired. To log in you must change it using a client that supports expired passwords.
Execute the following query in MYSQL Workbench (change new-password to your own new password):
ALTER USER `root`@`localhost` IDENTIFIED BY 'new-password', `root`@`localhost` PASSWORD EXPIRE NEVER; flush privileges;