navicat for mysql 连接时报错:1251-Client does not support authentication protocol requested by server
今天在虛擬機上使用docker安裝了mysql(默認拉取了最新的mysql版本),端口映射后再本地使用navicat for mysql連接的時候報錯:
說是客戶端不支持服務器要求的認證插件
進入mysql容器,輸入如下命令查看系統用戶對應的認證插件
可以看到當前版本root用戶使用的plugin是caching_sha2_password,mysql官方網站有如下說明:
https://dev.mysql.com/doc/refman/8.0/en/caching-sha2-pluggable-authentication.html
也就是說8.0的默認認證插件是caching_sha2_password,而不是之前的mysql_native_password. 使用8.0的mysql就必須使用支持此插件的客戶端版本。
plugin的作用之一就是處理后的密碼,不同的plugin處理后密碼的格式和長度是不一樣的,類似于使用MD5加密和使用base64加密,對于同一個明文處理后的格式是不一樣的。
我們可以升級navicat驅動或者把mysql用戶登錄密碼加密規則還原成mysql_native_password.?
這里采用第二種方式
mysql官方網站提供了從當前caching_sha2_password降級到mysql_native_password,我們可以仿照這個
在mysql服務端執行
#1.修改root的密碼為'123456' 2.使用mysql_native_password對新密碼進行編碼 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';修改后再使用客戶端登錄成功
?
總結
以上是生活随笔為你收集整理的navicat for mysql 连接时报错:1251-Client does not support authentication protocol requested by server的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kubernetes(六)k8s核心组件
- 下一篇: 如何获取Google地图API密钥?(翻