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

阿里雲 ECS 遠程訪問 MySQL 完整配置:賬號、防火牆、安全組

     編輯:MySQL 綜合教學

阿里雲 ECS 遠程訪問 MySQL 完整配置:賬號、防火牆、安全組

在阿里雲 ECS(或任意雲主機)開放 MySQL 3306 遠程連線,需完成三層授權:MySQL 賬號授權、系統防火牆放行、雲廠商安全組放行。缺一不可。

一、MySQL 賬號授權(核心)

1. 查看初始密碼(市場鏡像環境)

cat /你的安裝路徑/account.log
# 例:cat /alidata/account.log

2. 修改 root 密碼

mysql -u root -p
UPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;

MySQL 5.7+ 用 authentication_string,5.6 用 password。

3. 開放 root 遠程訪問(生產建議建專用賬號)

UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

Host='%' 表示允許任意 IP 連線。

4. 重啟生效並驗證

service mysqld restart
# 或 systemctl restart mysqld

mysql -u root -p
SELECT CURRENT_USER();  -- 確認以 root@% 身分登入

二、系統防火牆放行 3306(CentOS 7 firewalld / iptables)

firewalld(推薦)

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports  # 驗證

iptables(傳統)

vi /etc/sysconfig/iptables
# 在 COMMIT 前插入:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

service iptables restart
iptables -L -n | grep 3306

三、阿里雲安全組放行(最常被忽略)

  1. 登入阿里雲控制台 → ECS 實例 → 安全組 → 配置規則。
  2. 入方向 → 添加規則:
    協議:TCP
    埠範圍:3306/3306
    授權對象:0.0.0.0/0(全網)或指定辦公 IP 段(更安全)
    優先級:1
    描述:MySQL 遠程訪問
  3. 若實例綁定多張網卡/多個安全組,逐一配置。

四、驗證遠程連線

# 本機/辦公電腦
mysql -h  -P 3306 -u root -p
# 或使用 Navicat、DataGrip 等 GUI 工具測試

五、安全最佳實踐(必讀)

六、常見連不上排查清單

  1. telnet 3306 或 nc -zv 3306 測試埠通達性。
  2. netstat -antp | grep 3306 確認 MySQL 監聽 0.0.0.0:3306(非 127.0.0.1)。
  3. SHOW VARIABLES LIKE 'bind_address'; 應為 0.0.0.0 或 ::。
  4. 檢查 skip_networking=OFF。
  5. 雲防火牆/安全組/本地防火牆三層全放行。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
風險對策
root 直接對公網開放 3306建專用讀寫/唯讀賬號、強密碼、限定來源 IP
安全組 0.0.0.0/0僅授信辦公 IP/跳板機 IP 段
明文傳輸啟用 SSL:REQUIRE SSL、客戶端配置 CA 證書
暴力破解fail2ban 監控錯誤日誌封禁 IP、修改預設埠、禁用 root 遠程