今天在跑一个flink程序,往MySQL存数据的时候,报这个错。
最后发现主要原因是8.x版本的验证模块和5.x版本不同:
5.x版本是:default_authentication_plugin=mysql_native_password
8.x版本是:default_authentication_plugin=caching_sha2_password
更新mysql驱动的版本,这里我修改为了8.0.20版本。
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
<!--<version>8.0.20</version>-->
</dependency>
因为MySQL的版本升级就是为了更加安全,不应该为了迁就旧的驱动而修改验证插件。
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>