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

MySQL 開啟遠端連線完整步驟:防火牆放行 3306 埠與 GRANT 授權實戰

     編輯:MySQL 資料庫相關知識

預設 MySQL 僅允許本機連線,遠端存取需完成「防火牆放行」與「帳號授權」兩大步驟,缺一不可。

步驟 1:確認防火牆放行 3306 埠

# CentOS 7 / RHEL 7 (firewalld)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# Ubuntu (ufw)
ufw allow 3306/tcp

# iptables 通用
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

若自訂埠 (如 3307),同理放行對應埠號。

步驟 2:建立遠端帳號並授權

# 1. 本機以 root 登入
mysql -uroot -p

# 2. 建立帳號並授權 (範例:允許 192.168.1.100 存取 db_app)
GRANT ALL PRIVILEGES ON db_app.* TO 'app_user'@'192.168.1.100' IDENTIFIED BY 'StrongP@ssw0rd';

# 3. 立即生效
FLUSH PRIVILEGES;

GRANT 參數詳細解析

子句說明範例
ALL PRIVILEGES所有權限,或指定 SELECT,INSERT,UPDATE,DELETE,CREATE,DROP視最小權限原則調整
db_app.*指定資料庫.所有表;*.* 表全域;db_app.tbl 單表按需縮小範圍
'app_user'@'192.168.1.100'用戶名@允許連線來源 IP;% 表任意 IP (不建議)生產環境務必限定 IP
IDENTIFIED BY 'pwd'設定密碼強密碼策略

常見問題排查

  • ERROR 1130 (Host not allowed):IP 不在授權清單,檢查 user.Host 欄位。
  • 連線逾時:防火牆未放行、雲廠商安全組未放行、bind-address 仍為 127.0.0.1。
  • SSL 錯誤:MySQL 8.0 預設要求 SSL,客戶端需加 --ssl-mode=DISABLED 或配置憑證。

驗證連線

# 遠端機器測試
mysql -h 192.168.1.50 -u app_user -p db_app
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved