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

MySQL 開放遠端存取完整設定:bind-address、授權主機、防火牆與雲端安全組三層放行

     編輯:MySQL 資料庫相關知識

預設 MySQL 僅監聽 127.0.0.1,開放遠端需完成配置檔、帳號授權、作業系統防火牆、雲端安全組四層設定,缺一不可。

1. 修改配置檔

# /etc/mysql/my.cnf 或 my.ini
[mysqld]
# bind-address = 127.0.0.1  # 註解或改為 0.0.0.0 監聽所有介面
bind-address = 0.0.0.0
# 或具體業務 IP:bind-address = 192.168.1.100

重啟服務:systemctl restart mysql / /etc/init.d/mysql restart。

2. 帳號授權

mysql -u root -p
USE mysql;
SELECT user, host FROM user;  -- 確認現有 host 值

-- 方案 A:修改現有 root host(不建議生產使用)
UPDATE user SET host = '%' WHERE user = 'root' AND host = '127.0.0.1';
FLUSH PRIVILEGES;

-- 方案 B:建立專用遠端帳號(最佳實務)
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%' IDENTIFIED BY 'strong_password' WITH GRANT OPTION;
-- 僅允許特定 IP
GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'192.168.1.102' IDENTIFIED BY 'strong_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. 作業系統防火牆

# CentOS 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

4. 雲端安全組(阿里雲/AWS/騰訊雲等)

控制台 → 安全組規則 → 入站規則 → 新增:TCP 3306,來源 0.0.0.0/0 或具體 CIDR。

驗證連線

# 遠端機器
mysql -h 伺服器公網IP -u app_user -p
telnet 伺服器公網IP 3306  # 測試埠通達性
安全加固建議:
• 嚴禁 root 使用 %',建立專用帳號並限制來源 IP。
• 啟用 SSL 加密傳輸(REQUIRE SSL)。
• 非必要不開放公網,改用 SSH 隧道或 VPN。
• 定期審計 SHOW GRANTS、SELECT user,host FROM mysql.user。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved