原因
mysql新旧版本的认证插件不同造成的
mysql8版本之前认证插件是:mysql_native_password
8版本后认证插件是:caching_sha2_password
解决办法
- 更新MySQL驱动,使用新的认证plugin,比如在pom.xml中
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
- 降低MySQL版本,默认使用旧的认证插件
网上还有方法是修改新版本mysql的认证plugin,把mysql8的认证方式 由 caching_sha2_password 改为 mysql_native_password 。
这种方法可能会带来其他兼容问题,不建议使用,毕竟新版mysql使用了新的认证方式,是经过考虑的。重新改成旧的认证方式可能会带来更多错误。