人閑太久,努力一下就以為是在拼命。
一、問題
Navicat Premium
連接 MySQL 8.0
報錯:
1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
二、原因
MySQL 8.0
改變了密碼認(rèn)證方式。
在 MySQL 8.0
之前版本的密碼認(rèn)證方式為:
為了提供更安全的密碼加密方式,從 MySQL 8.0
版本開始,默認(rèn)使用密碼認(rèn)證方式為:
報錯 1251
的原因也很明顯:
Client does not support authentication protocol requested by server;
翻譯為中文就是:“客戶端不支持服務(wù)端請求的認(rèn)證協(xié)議”。
我這里用的 Navicat Premium 11
去連接 MySQL 8.0
,因?yàn)榘姹咎停圆恢С?caching_sha2_password
的密碼加密方式??!
在 MySQL
命令行終端,可以查看版本以及默認(rèn)密碼認(rèn)證方式:
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>
# 查看默認(rèn)加密方式
mysql>
mysql> use mysql;
Database changed
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>
可以看到, MySQL 8.0
默認(rèn)全部用戶的密碼加密方式都是 caching_sha2_password
。
三、解決
解決這個問題,有兩種方法。
- 方法1:修改
MySQL 8.0
的密碼認(rèn)證方式。
- 方法2:安裝新版本
Navicat Premium
。
兩種方法都可行,但是加密規(guī)則最好不要亂改,很容易出問題。所以,推薦使用“方法2”。
3.1、修改 MySQL 8.0
密碼認(rèn)證方式
MySQL
命令行終端分別執(zhí)行以下操作:
# 更新root用戶的密碼為"123456",
# 注意,這里需要將"123456"換成自己的密碼,請勿使用弱密碼!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新權(quán)限,使密碼更新生效
FLUSH PRIVILEGES;
簡單演示一下:
第一步:進(jìn)入 mysql
命令行終端。
root@ed2a490912e5:/# mysql -u root -p
Enter password:
mysql>
第二步:查看默認(rèn)密碼認(rèn)證方式。
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
用戶密碼認(rèn)證方式為 caching_sha2_password
。
第三步:修改 root
用戶密碼認(rèn)證方式,如果是其他用戶,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
用戶密碼認(rèn)證方式。
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
用戶密碼認(rèn)證方式變成了 mysql_native_password
。
再次使用Navicat Premium 11
連接 MySQL 8.0
,連接成功!
再次提示,修改密碼認(rèn)證方式,很容易出問題,不推薦!
3.2、安裝新版本 Navicat Premium
經(jīng)我測試,Navicat Premium 12
及以上版本均支持 MySQL 8.0
連接。最新版本是 Navicat Premium 15
,官網(wǎng)下載地址:
http://www.navicat.com.cn/download/navicat-premium
安裝很簡單,運(yùn)行安裝包,根據(jù)提示一步一步安裝即可。遺憾的是 Navicat Premium
不是免費(fèi)軟件,永久許可證價格比較昂貴… …官網(wǎng)報價:人民幣 4,449.0 元,企業(yè)版甚至上萬了。貧窮,讓我流下眼淚,哭唧唧
好在可以破解?。?!
具體可以參考:Navicat Premium 15 永久破解安裝教程
免責(zé)申明:僅供技術(shù)交流,如產(chǎn)生法律糾紛與本人無關(guān)。如有侵犯版本,聯(lián)系刪除!
附上一張效果圖:
到此這篇關(guān)于Navicat Premium 連接 MySQL 8.0 報錯“1251”分析解決的文章就介紹到這了,更多相關(guān)Navicat Premium 連接 MySQL 8.0 報錯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 使用Navicat Premium工具將oracle數(shù)據(jù)庫遷移到MySQL
- Navicat Premium遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法
- Navicat Premium操作MySQL數(shù)據(jù)庫(執(zhí)行sql語句)
- Navicat premium連接數(shù)據(jù)庫出現(xiàn):2003 Can''t connect to MySQL server on''localhost''(10061)
- Navicat Premium 15 永久破解激活工具及安裝教程(親測可用)
- 安裝配置mysql及Navicat prenium的詳細(xì)流程