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

MySQL 遠程連線不通?兩招搞定 bind-address 與授權

     編輯:MySQL 資料庫相關知識

現象

本機 mysql -h127.0.0.1 正常,遠程 mysql -h 報錯 ERROR 1130 (HY000): Host 'x.x.x.x' is not allowed to connect。

步驟 1:修改綁定位址 (my.cnf / my.ini)

[mysqld]
# bind-address = 127.0.0.1   # 註解或改為 0.0.0.0
bind-address = 0.0.0.0        # 監聽所有介面

修改後 **重啟 MySQL**:systemctl restart mysqld 或 net stop mysql && net start mysql。

步驟 2:授權遠程帳號

登入本機 MySQL:

mysql -u root -p

方法 A:修改現有 root 帳號 (不推薦生產)

USE mysql;
UPDATE user SET host = '%' WHERE user = 'root';
FLUSH PRIVILEGES;

方法 B:建立專用遠程帳號 (推薦)

CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongP@ssw0rd';
GRANT ALL PRIVILEGES ON mydb.* TO 'app_user'@'%';
FLUSH PRIVILEGES;

最小權限原則:僅授權特定庫、特定表、特定操作 (SELECT/INSERT/UPDATE/DELETE)。

驗證

# 遠程機器
mysql -h  -u app_user -p
# 成功進入提示符

防火牆別忘了

# firewalld
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

# iptables
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

雲端安全組 / 安全組

AWS SG、阿里雲安全組、GCP Firewall **需放行 3306**,且**僅對應用伺服器 CIDR 開放**,禁止 0.0.0.0/0。

結語

「監聽 0.0.0.0 + 專用帳號授權 + 防火牆限制來源 IP」三步驟,安全解決 MySQL 遠程連線問題。

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