今天整合SSM时,在创建连接时一直报错 Unable to load authentication plugin 'caching_sha2_password'. 研究了很久发现是因为MySQL的版本问题
我目前用的MySQL 8.0.15,据网上所说,5.x版本和8.x的区别如下:
5.X版本是:default_authentication_plugin=mysql_native_password
8.x版本就是:default_authentication_plugin=caching_sha2_password
但是后来看到一篇博客说将Maven引入的MySQL驱动的jar包改为(8.0.11)版本的jar(我目前用的5.1)看完后马上将自己的jar包下载一个8.0.11发现还是不行
继续百度....又看到说将加密规则重新改一下,又打开MySQL改密码
输入如下代码:(password换成相应密码)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES; alter user 'root'@'localhost' identified by 'password';
这里有个坑需要注意,一定看好自己的root用户对应的地址,默认是localhost,我之前小组需要改成了%,这里运行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;时一直报错
后来改成ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 成功运行。
改完加密规则成功运行,后来又发现,在改完加密规则之后,就算MySQL驱动jar包仍然是5.1也可以使用: