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

MySQL 開啟遠程連線完整配置:授權、防火牆、bind-address

     編輯:MySQL 資料庫相關知識

1. 修改綁定地址


# my.cnf / my.ini [mysqld]
bind-address = 0.0.0.0   # 監聽所有介面,或具體內網 IP
# 重啟生效
systemctl restart mysqld

2. 建立遠程帳號並授權


-- 指定 IP(推薦生產)
CREATE USER 'app'@'10.0.0.5' IDENTIFIED BY 'strong_pass';
GRANT SELECT, INSERT, UPDATE, DELETE ON `prod`.* TO 'app'@'10.0.0.5';

-- 通配符(僅測試環境)
CREATE USER 'app'@'%' IDENTIFIED BY 'strong_pass';
GRANT ALL PRIVILEGES ON *.* TO 'app'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

3. 防火牆放行 3306


# iptables
iptables -I INPUT -p tcp --dport 3306 -s 10.0.0.0/8 -j ACCEPT
service iptables save

# firewalld
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/8" port protocol="tcp" port="3306" accept'
firewall-cmd --reload

# 云安全組/安全組:入站規則 TCP 3306 來源 10.0.0.0/8

4. 驗證連線


# 客戶端測試
mysql -h db_server_ip -u app -p'strong_pass' -P 3306 -e "SELECT 1;"
# 或 telnet
telnet db_server_ip 3306

5. 安全加固建議

  • 帳號綁定具體 IP/網段,避免 %。
  • 啟用 SSL:REQUIRE SSL,客戶端配置 --ssl-mode=VERIFY_CA。
  • 修改預設埠 3306 → 非標準埠(如 13306),減少掃描攻擊。
  • 配置 max_connect_errors、connect_timeout 防暴力破解。
  • 定期審計 mysql.user、information_schema.processlist。

常見報錯對照

錯誤原因解決
ERROR 2003 (HY000)網路不通/防火牆/bind-address檢查 3 步驟
ERROR 1045 (28000)帳號/密碼/Host 不匹配核對 user 表、授權語句
ERROR 2026 (HY000)SSL 握手失敗客戶端加 --ssl-mode=DISABLED 或配置 CA
Host 'x.x.x.x' is not allowed帳號 Host 欄位不匹配建立對應 Host 帳號或用 %

三步驟(bind-address、授權、防火牆)缺一不可,按表排查即可通。

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