高版本mysql訪問出現Client does not support authentication protocol requested by server;

柯宝宝智商感人發表於2024-09-10

訪問8.0等高版本資料庫報錯:Client does not support authentication protocol requested by server; consider upgrading MySQL client(客戶端不支援伺服器請求的身份驗證協議;請考慮升級MySQL客戶端)
這種問題就是你訪問的工具身份驗證協議過於落後,如果是navicat之類的軟體可以考慮升級,如果是在squelize之類的程式裡邊的話也可以考慮換高版本的程式包。如果實在找不到高版本的程式包也不要怕可以用下面的方法去解決。

1.輸入命令修改相關機密方法

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;這裡的password是你正在使用的密碼

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';#更新一下使用者的密碼這裡的password為你修改的新密碼。

FLUSH PRIVILEGES; #重新整理許可權,使自己的修改生效。

這時還是連線不上,然後透過telnet3306資料庫對應的介面,出現了8.0.11;S"3<VN,.Y\k4Ycaching_sha2_password這個資訊,是修改沒有生效還是其他原因?重啟容器之後還是不行。

然後use mysql;

查詢表中的相關資訊 select user,host,plugin from user where user='root';

這時發現了問題,原理剛剛修改的是localhost,對於非本機的連線密碼校驗規則還是沒有變。

alter user 'root'@'%' identified by 'password' password expire never;

alter user 'root'@'%' identified with mysql_native_password by 'password';//password是自己新修改的密碼。

flush privileges;再次重新整理一下許可權配置。

修改好了,再訪問資料庫成功。

相關文章