解决Node下MySQL客户端不支持认证协议引发的"ER_NOT_SUPPORTED_AUTH_MODE"问题

  目前,最新的mysql模块并未完全支持MySQL 8的"caching_sha2_password"加密方式,而"caching_sha2_password"在MySQL 8中是默认的加密方式。

  因此,下面的命令是默认已经使用了“caching_sha2_password”加密方式,所以才会导致该账号、密码无法在mysql模块中使用:

  mysql> ALTER USER '${username}'@'localhost' IDENTIFIED BY '${password}';

  解决方法:

    重新修改用户root的密码,并指定mysql模块能够支持的加密方式:

  mysql> ALTER USER '${username}'@'localhost' IDENTIFIED WITH mysql_native_password BY '${password}';

  上述语句,显示指定了使用"mysql_native_password"的加密方式,这种方式是在mysql模块中完全被支持。