先来解释一下为什么会报这个错,在mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password
。
解决方案有很多,我是创建了一个新用户,并指定加密规则为:mysql_native_password
,这样的话,仅需要执行以下语句即可:
create user 'your username'@'%' identified with mysql_native_password by 'your password
例如:创建用户'zhangsan(我的是譬如名+姓的英文小写)'''%'用mysql_native_password标识'123654'
也可以直接修改我的配置文件,将默认密码规则设置为mysql_native_password
,刷新权限并重置根密码即可。
default_authentication_plugin=mysql_native_password
如果想用新的caching_sha2_password也是可以的,JAVA的话MySQL的已经推出了新的MySQL的连接器的Java包,引入后,驱动使用com.mysql.cj.jdbc.driver即可,这个方案本地试了。没有问题。
MySQL数据库驱动mysql-connector-java的8.0.9-rc版本连接MySQL数据库
https://blog.csdn.net/ZZY1078689276/article/details/79987778
mysql-connector-java的8.0.9-rc版本下载地址
http://www.mvnjar.com/mysql/mysql-connector-java/8.0.12/detail.html