解決Navicat Premium 連接 MySQL 8.0 報錯"1251"的問題分析
人閑太久,努力一下就以為是在拼命。
一、問題
Navicat Premium 連接 MySQL 8.0 報錯:
1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
二、原因
MySQL 8.0 改變了密碼認證方式。
在 MySQL 8.0 之前版本的密碼認證方式為:
mysql_native_password
為了提供更安全的密碼加密方式,從 MySQL 8.0 版本開始,默認使用密碼認證方式為:
caching_sha2_password
報錯 1251 的原因也很明顯:
Client does not support authentication protocol requested by server;
翻譯為中文就是:“客戶端不支持服務端請求的認證協議”。
我這里用的 Navicat Premium 11 去連接 MySQL 8.0,因為版本太低,所以不支持 caching_sha2_password 的密碼加密方式!!
在 MySQL 命令行終端,可以查看版本以及默認密碼認證方式:
root@程序員的一天:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. mysql> mysql> # 查看版本mysql> select version();+-----------+| version() |+-----------+| 8.0.21 |+-----------+1 row in set (0.00 sec)mysql> mysql> # 查看默認加密方式mysql> mysql> use mysql;Database changedmysql> mysql> select host, user, plugin from user;+-----------+------------------+-----------------------+| host | user | plugin |+-----------+------------------+-----------------------+| % | root | caching_sha2_password || localhost | mysql.infoschema | caching_sha2_password || localhost | mysql.session | caching_sha2_password || localhost | mysql.sys | caching_sha2_password || localhost | root | caching_sha2_password |+-----------+------------------+-----------------------+5 rows in set (0.00 sec)mysql>
可以看到, MySQL 8.0 默認全部用戶的密碼加密方式都是 caching_sha2_password。
三、解決
解決這個問題,有兩種方法。
方法1:修改 MySQL 8.0 的密碼認證方式。 方法2:安裝新版本 Navicat Premium。兩種方法都可行,但是加密規則最好不要亂改,很容易出問題。所以,推薦使用“方法2”。
3.1、修改 MySQL 8.0 密碼認證方式
MySQL 命令行終端分別執行以下操作:
# 更新root用戶的密碼為'123456',# 注意,這里需要將'123456'換成自己的密碼,請勿使用弱密碼!ALTER USER ’root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ’123456’;# 刷新權限,使密碼更新生效FLUSH PRIVILEGES;
簡單演示一下:
第一步:進入 mysql 命令行終端。
root@ed2a490912e5:/# mysql -u root -pEnter password: mysql>
第二步:查看默認密碼認證方式。
mysql> use mysql;mysql> select host, user, plugin from user;+-----------+------------------+-----------------------+| host | user | plugin |+-----------+------------------+-----------------------+| % | root | caching_sha2_password || localhost | mysql.infoschema | caching_sha2_password || localhost | mysql.session | caching_sha2_password || localhost | mysql.sys | caching_sha2_password || localhost | root | caching_sha2_password |+-----------+------------------+-----------------------+5 rows in set (0.00 sec)mysql>
可以看到,root 用戶密碼認證方式為 caching_sha2_password。
第三步:修改 root 用戶密碼認證方式,如果是其他用戶,root 替換為其他用戶名即可。等同于更新一下密碼!
mysql> ALTER USER ’root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ’123456’;Query OK, 0 rows affected (0.05 sec)mysql> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.04 sec)
第四步:再次查看 root 用戶密碼認證方式。
mysql> select host, user, plugin from user;+-----------+------------------+-----------------------+| host | user | plugin |+-----------+------------------+-----------------------+| % | root | caching_sha2_password || localhost | mysql.infoschema | caching_sha2_password || localhost | mysql.session | caching_sha2_password || localhost | mysql.sys | caching_sha2_password || localhost | root | mysql_native_password |+-----------+------------------+-----------------------+5 rows in set (0.00 sec)
注意看,root 用戶密碼認證方式變成了 mysql_native_password。
再次使用Navicat Premium 11 連接 MySQL 8.0,連接成功!
再次提示,修改密碼認證方式,很容易出問題,不推薦!
3.2、安裝新版本 Navicat Premium
經我測試,Navicat Premium 12 及以上版本均支持 MySQL 8.0 連接。最新版本是 Navicat Premium 15,官網下載地址:
http://www.navicat.com.cn/download/navicat-premium
安裝很簡單,運行安裝包,根據提示一步一步安裝即可。遺憾的是 Navicat Premium 不是免費軟件,永久許可證價格比較昂貴… …官網報價:人民幣 4,449.0 元,企業版甚至上萬了。貧窮,讓我流下眼淚,哭唧唧
好在可以破解!!!具體可以參考:Navicat Premium 15 永久破解安裝教程
免責申明:僅供技術交流,如產生法律糾紛與本人無關。如有侵犯版本,聯系刪除!
附上一張效果圖:
到此這篇關于Navicat Premium 連接 MySQL 8.0 報錯“1251”分析解決的文章就介紹到這了,更多相關Navicat Premium 連接 MySQL 8.0 報錯內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
