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

MySQL 安裝後開啟遠程連線完整配置:防火牆、授權、Bind-Address 三步走

     編輯:MySQL 綜合教學

步驟一:防火牆開放 3306 端口

Linux (iptables/firewalld)

# iptables
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

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

# 驗證
netstat -anp | grep 3306
iptables -L -n | grep 3306

Windows

控制台 → Windows Defender 防火牆 → 進階設定 → 入站規則 → 新增規則 → 連接埠 TCP 3306 → 允許連線。

步驟二:MySQL 授權遠程用戶

-- 方式 1:修改 user 表 host(舊版通用)
USE mysql;
UPDATE user SET Host = '%' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

-- 方式 2:GRANT 授權(推薦,支援密碼策略)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

-- 僅允許特定 IP
GRANT ALL PRIVILEGES ON mydb.* TO 'remote_user'@'192.168.1.100' IDENTIFIED BY 'StrongPass123!';
⚠ WITH GRANT OPTION 允許該用戶再授權,最小權限原則建議移除。

步驟三:配置 bind-address 監聽所有介面

[mysqld]
# 預設 127.0.0.1 僅本機
bind-address = 0.0.0.0
# 或註釋掉該行(MySQL 8.0+ 預設 0.0.0.0)

修改後 systemctl restart mysqld 或重啟服務。

驗證連線

# 客戶端測試
mysql -h 192.168.1.50 -u remote_user -p

# 抓包確認
tcpdump -i eth0 port 3306 -nn

安全加固清單

  • Root 禁用遠程:DELETE FROM mysql.user WHERE User='root' AND Host='%';
  • 強制 SSL:REQUIRE SSL 於 GRANT 子句,配合 require_secure_transport=ON。
  • 限制來源 IP:安全組/防火牆僅放行應用伺服器 IP 段。
  • 審計日誌:啟用 audit_log 插件記錄登入/操作。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved