先來解釋一下為什么會報這個錯,在mysql8之前的版本使用的密碼加密規則是mysql_native_password,但是在mysql8則是caching_sha2_password
。
解決方案有很多,我是創建了一個新用戶,並指定加密規則為:mysql_native_password
,這樣的話,僅需要執行以下語句即可:
create user 'your username'@'%' identified with mysql_native_password by 'your password
也可以直接修改my配置文件,將默認密碼規則設置為mysql_native_password
,刷新權限並重置root密碼即可。
default_authentication_plugin=mysql_native_password
如果想用新的caching_sha2_password也是可以的,java的話mysql已經推出了新的mysql-connector-java包,引入后,驅動使用com.mysql.cj.jdbc.driver即可,這個方案本地試了。沒有問題
原文地址:https://liaozixu.com/article/java/the-pit-of-mysql80-cachingsha2password.html