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

MySQL 遠端存取開啟指南:bind-address、授權、防火牆三步走

     編輯:MySQL 資料庫相關知識

環境

  • Ubuntu + MySQL 5.x/8.x
  • 目標:允許 192.168.1.0/24 網段遠端連線

步驟 1:修改 bind-address

# /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/my.cnf
[mysqld]
bind-address = 192.168.1.107  # 本機實際 IP,或 0.0.0.0 監聽所有介面
# bind-address = 127.0.0.1  # 預設僅本地,需修改

systemctl restart mysql

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

mysql -u root -p
CREATE USER 'app'@'192.168.1.%' IDENTIFIED BY 'StrongP@ssw0rd!';
GRANT ALL PRIVILEGES ON mydb.* TO 'app'@'192.168.1.%';
FLUSH PRIVILEGES;
  • % 通配所有 IP(不建議生產)
  • 192.168.1.% 限定網段
  • 192.168.1.50 限定單一 IP

步驟 3:防火牆放行 3306

# UFW (Ubuntu)
ufw allow from 192.168.1.0/24 to any port 3306
ufw enable

# iptables
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 3306 -j ACCEPT
iptables-save > /etc/iptables/rules.v4

# cloud 安全組:入站規則 TCP 3306 來源 192.168.1.0/24

驗證連線

# 客戶端測試
mysql -h 192.168.1.107 -u app -p
telnet 192.168.1.107 3306

常見問題排查

現象可能原因解決
Connection refusedbind-address 錯誤/服務未重啟檢查 my.cnf、systemctl restart mysql
Access denied帳號主機不匹配/密碼錯誤檢查 user.Host、重設密碼
Timeout防火牆/安全組阻擋開放 3306 入站
SSL errorMySQL 8.0 預設要求 SSL加 useSSL=false 或配置憑證

安全加固建議

  • 帳號密碼複雜度、定期輪換
  • 啟用 SSL/TLS 加密傳輸
  • 僅開放應用伺服器 IP,禁止 0.0.0.0/0
  • 監控異常登入:audit_log、Aborted_connects
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved