首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 遠端連線完整設定指南:授權法、改表法與防火牆實務

     編輯:MySQL 資料庫相關知識

預設 MySQL 僅允許 localhost 連線,遠端存取需完成 **帳號授權**、**網路綁定**、**防火牆開放** 三大步驟。本文提供兩種授權模式、配置檔調整與驗證流程,適用 MySQL 5.7/8.0。

方法一:建立專用遠端帳號 (推薦,最小權限原則)

-- 允許指定 IP 遠端連線
CREATE USER 'app_user'@'192.168.1.100' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'192.168.1.100';
FLUSH PRIVILEGES;

-- 或允許任意 IP (僅受信任網段/防火牆保護時)
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

8.0 新語法:CREATE USER ... IDENTIFIED WITH mysql_native_password BY 'pwd'; 相容舊驅動。

方法二:修改 root 帳號 host 為 % (僅測試/開發環境)

-- 登入本機 mysql
mysql -u root -p
USE mysql;
UPDATE user SET host='%' WHERE user='root' AND host='localhost';
FLUSH PRIVILEGES;

⚠ **生產嚴禁**:root 暴露於網路極高風險,必須搭配防火牆限制來源 IP、強制 SSL、複雜密碼、定期輪換。

配置檔調整:綁定網路介面

[mysqld]
# 5.7/8.0 預設 bind-address=127.0.0.1 僅回環
# 選項 A:註解掉監聽所有介面 (0.0.0.0)
# bind-address = 127.0.0.1

# 選項 B:指定具體內網 IP (較安全)
bind-address = 192.168.1.50

# 選項 C:8.0 支援多位址
bind-address = 192.168.1.50, 10.0.0.10

修改後 **必須重啟服務**:systemctl restart mysqld / net stop mysql && net start mysql。

防火牆開放 3306 埠

作業系統指令
CentOS 7/8 (firewalld)firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
Ubuntu (ufw)ufw allow 3306/tcp
Windows 防火牆進階設定 → 輸入規則 → 新增規則 → 連接埠 TCP 3306 → 允許連線 → 套用至域/專用/公用
雲端安全組 (AWS/Azure/GCP)入站規則:TCP 3306,來源 CIDR 限定應用伺服器網段 (如 10.0.1.0/24)

驗證遠端連線

# 客戶端機器測試
mysql -h 192.168.1.50 -u app_user -p -D mydb
# 或使用 GUI 工具 (Workbench, DBeaver, DataGrip) 建立連線測試

常見失敗排查

  1. Host 'x.x.x.x' is not allowed to connect → 帳號 host 欄位不匹配,檢查 SELECT user, host FROM mysql.user;。
  2. Can't connect to MySQL server on 'host' (10060) → 網路不通:防火牆、安全組、bind-address、VPN/路由。
  3. Authentication plugin 'caching_sha2_password' cannot be loaded → 8.0 預設新認證插件,舊驅動不支援。解決:ALTER USER 'u'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd'; 或升級驅動。
  4. SSL connection required → 帳號有 REQUIRE SSL,客戶端需啟用 SSL 或移除要求。

安全加固清單

  • [ ] 僅開放應用伺服器 IP (安全組/防火牆 CIDR 限制)。
  • [ ] 強制 SSL 傳輸:REQUIRE SSL + 客戶端驗證 CA。
  • [ ] 定期輪換密碼、審核 mysql.user 異常帳號。
  • [ ] 啟用審計日誌 (audit_log 插件) 記錄登入/查詢。
  • [ ] 讀寫分離:唯讀帳號只連 Replica,Primary 僅限管理/寫入帳號。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved