MySQL8.0開啟root用戶遠(yuǎn)程訪問權(quán)限的配置與排錯步驟(保姆級教程)
環(huán)境說明:MySQL 8.0.x、Windows / Linux 環(huán)境
適用場景:本地開發(fā)連接遠(yuǎn)程數(shù)據(jù)庫、服務(wù)器部署項目等。
在默認(rèn)情況下,MySQL 8.0 為了保證安全性,root 用戶僅允許在 localhost(即本機(jī))登錄。當(dāng)我們需要使用 Navicat、DBeaver 或代碼等客戶端進(jìn)行遠(yuǎn)程連接時,就會報錯 Host 'xxx' is not allowed to connect to this MySQL server。
下面是完整的配置與排錯步驟:
第一步:查詢當(dāng)前 root 用戶的訪問權(quán)限
首先,登錄 MySQL 數(shù)據(jù)庫,切換至 mysql 核心庫,查看當(dāng)前用戶的訪問主機(jī)限制。
-- 1. 切換至 mysql 數(shù)據(jù)庫 USE mysql; -- 2. 查詢 user 表中的用戶名和允許連接的主機(jī)(host) SELECT user, host, plugin FROM user WHERE user = 'root';
結(jié)果解析:
正常情況下,你會看到 root 用戶的 host 字段值為 localhost,這意味著當(dāng)前 root 被限制為僅限本地訪問。
(注:這里額外查了 plugin 字段,是為了后續(xù)排查 MySQL 8 的密碼加密規(guī)則做準(zhǔn)備)。
第二步:修改 root 用戶的 host 為%
將 root 用戶的訪問主機(jī)修改為 %(% 在 MySQL 中代表通配符,表示允許任意 IP 地址連接)。
-- 將 root 用戶的 host 修改為 % UPDATE user SET host = '%' WHERE user = 'root';
?? 【MySQL 8 極易踩坑的注意點】:
執(zhí)行完 UPDATE 后,必須立刻刷新權(quán)限,否則配置不會生效!
-- 刷新系統(tǒng)權(quán)限表(必須執(zhí)行) FLUSH PRIVILEGES;
進(jìn)階建議:
在生產(chǎn)環(huán)境中,出于安全考慮,極不推薦直接使用%。建議將host設(shè)置為具體的客戶端外網(wǎng) IP(例如:192.168.1.100),或者使用網(wǎng)段(例如:192.168.1.%)。
第三步:檢查客戶端或服務(wù)端防火墻設(shè)置
很多時候數(shù)據(jù)庫配置沒問題,但依然連不上,90% 是因為防火墻攔截了 MySQL 的默認(rèn)端口 3306。
方案 A:Windows 防火墻(入站規(guī)則配置)
(不建議直接“關(guān)閉防火墻”,有安全隱患,推薦放行端口)
- 打開 控制面板 ->
Windows Defender 防火墻-> 高級設(shè)置。 - 點擊左側(cè)的 入站規(guī)則,右側(cè)點擊 新建規(guī)則。
- 選擇 端口 ->
TCP-> 特定本地端口輸入3306。 - 選擇 允許連接,一路下一步,命名為
MySQL_3306,保存即可。
方案 B:Linux 防火墻(如 firewalld)
# 開放 3306 端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重載防火墻規(guī)則 firewall-cmd --reload
第四步:測試連接(Try)
打開你的數(shù)據(jù)庫連接工具(如 Navicat),輸入服務(wù)器的公網(wǎng)IP、root賬號和密碼進(jìn)行連接測試。
終極排錯:如果依然報錯怎么辦?(Authentication plugin問題)
如果在第三步測試時,你遇到了如下錯誤:
Authentication plugin 'caching_sha2_password' cannot be loaded...
原因:
MySQL 8.0 默認(rèn)的密碼加密規(guī)則變成了 caching_sha2_password,而像 Navicat 11 或部分老舊客戶端不支持這種加密方式。
解決方案:
將 root 用戶的加密方式改回 MySQL 5.7 時代的 mysql_native_password。
-- 修改加密規(guī)則并重新設(shè)置密碼('你的密碼' 替換為實際密碼) ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密碼'; -- 再次刷新權(quán)限! FLUSH PRIVILEGES;
執(zhí)行完上述 SQL 后,再次嘗試客戶端連接,成功率可達(dá) 100%。
總結(jié)
到此這篇關(guān)于MySQL8.0開啟root用戶遠(yuǎn)程訪問權(quán)限的配置與排錯步驟的文章就介紹到這了,更多相關(guān)MySQL開啟root用戶遠(yuǎn)程訪問權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mysql中replace與replace into的用法講解
今天小編就為大家分享一篇關(guān)于Mysql中replace與replace into的用法講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03
MYSQL5.7 全文檢索中文無返回數(shù)據(jù)的問題解決
本文介紹了MYSQL5.7 全文檢索中文無返回數(shù)據(jù)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
mysql多條數(shù)據(jù)合并成一條的3種常見方法
在實際的應(yīng)用開發(fā)中,有時我們需要將多條數(shù)據(jù)合并成一條數(shù)據(jù),以便更好地進(jìn)行數(shù)據(jù)分析和處理,本文就來介紹一下mysql多條數(shù)據(jù)合并成一條的方法,具有一定的參考價值2023-10-10
CentOS7安裝MySQL?8.4?+?Navicat遠(yuǎn)程連接新手教程
Navicat是高效數(shù)據(jù)庫管理工具,支持多數(shù)據(jù)庫操作,遠(yuǎn)程連接MySQL是常見的一種功能,這篇文章主要介紹了CentOS7安裝MySQL?8.4?+?Navicat遠(yuǎn)程連接的相關(guān)資料,需要的朋友可以參考下2025-12-12

