今天整合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也可以使用: