首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

開啟 MySQL 遠程登入兩步驟:防火牆放行 3306 + 建立遠程授權帳號

     編輯:MySQL 綜合教學

MySQL 預設僅允許本地連線,開啟遠程存取需完成兩個必要動作:作業系統防火牆開放 3306 埠、資料庫建立允許遠程 IP 的授權帳號。本文提供 Windows/Linux 雙平台指令與參數詳細解析。

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

Linux (firewalld / iptables)


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

# iptables (舊版)
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

Windows 防火牆


# 管理員 PowerShell
New-NetFirewallRule -DisplayName "MySQL 3306" -Direction Inbound -LocalPort 3306 -Protocol TCP -Action Allow

雲端安全組

AWS Security Group / Azure NSG / 阿里云安全組 → 入站規則 → TCP 3306 → 來源:特定 IP 或 0.0.0.0/0(僅測試環境)。

步驟二:建立遠程授權帳號並授權

  1. 以 root 登入 MySQL:

mysql -u root -p
# 輸入 root 密碼
  1. 授權語句(核心):

GRANT ALL PRIVILEGES ON discuz.* TO 'ted'@'123.123.123.123' IDENTIFIED BY '123456';
  1. 刷新權限:

FLUSH PRIVILEGES;

參數逐項解析

參數含義範例/說明
ALL PRIVILEGES所有權限可細化:SELECT,INSERT,UPDATE,DELETE,CREATE,DROP 等,逗號分隔
discuz.*作用對象:資料庫.表*.* 全庫全表;db.* 單庫全表;db.tbl 單表
'ted'使用者名稱可存在或不存在(自動建立)
'123.123.123.123'允許連線的 Client IP% 表示任意 IP(開發環境);生產建議限定具體 IP/網段
'123456'密碼強密碼策略

常見變體


-- 允許任意 IP(僅測試/開發)
GRANT SELECT,INSERT ON mydb.* TO 'dev'@'%' IDENTIFIED BY 'DevPass#2024';

-- 僅允許特定網段
GRANT ALL ON prod.* TO 'app'@'192.168.10.%' IDENTIFIED BY 'AppPass#2024';

-- MySQL 8.0+ 語法分離
CREATE USER 'app'@'192.168.10.%' IDENTIFIED BY 'AppPass#2024';
GRANT ALL ON prod.* TO 'app'@'192.168.10.%';

驗證遠程連線


# 從遠程客戶端機器
mysql -h server_ip -u ted -p123456 -e "SELECT USER(), CURRENT_USER();"
# 成功顯示 ted@123.123.123.123

故障排查清單

  1. 防火牆/安全組是否真正生效?(telnet server_ip 3306)
  2. MySQL bind-address 是否為 0.0.0.0 或具體內網 IP?(/etc/my.cnf)
  3. 帳號 Host 欄位是否匹配客戶端 IP?(SELECT User, Host FROM mysql.user;)
  4. 密碼是否正確?MySQL 8.0+ 預設 caching_sha2_password,舊客戶端需指定 mysql_native_password。
  5. SELinux/AppArmor 是否阻擋?

結語

「防火牆 + 授權帳號」雙重把關是資料庫網路安全基線。**生產環境嚴禁 root@'%'**,遵循最小權限、限定 IP、強密碼、定期輪換、審計登入日誌。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved