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

MySQL 設定指定 IP 遠程訪問連接的完整指南

     編輯:MySQL 資料庫相關知識

前言

在生產環境中,為了資料庫安全,通常需要限制 MySQL 只允許特定 IP 進行遠程連接。本文詳細說明如何配置 MySQL 授權特定 IP 或任意 IP 遠程訪問,並提供實用的 SQL 指令範例。

核心授權語法

MySQL 使用 GRANT 語句控制用戶權限,基本語法如下:

GRANT 權限列表 ON 數據庫.表 TO '用戶名'@'主機' IDENTIFIED BY '密碼' WITH GRANT OPTION;
FLUSH PRIVILEGES;

場景一:允許任意主機連接(開發/測試環境適用)

使用通配符 % 表示任意主機,適合內網開發環境,生產環境強烈不建議使用。

-- 授權 root 用戶從任意 IP 連接,密碼設為 jb51
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
FLUSH PRIVILEGES;

場景二:僅允許指定 IP 連接(生產環境推薦)

將主機部分替換為具體 IP 地址,實現精確訪問控制。

-- 僅允許 218.12.50.60 這一台主機以 root/jb51 連接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.12.50.60' IDENTIFIED BY 'jb51' WITH GRANT OPTION;
FLUSH PRIVILEGES;

安全最佳實踐建議

  • 最小權限原則:僅授予必要的資料庫與表權限,避免使用 *.*。
  • 強密碼策略:密碼需包含大小寫、數字、特殊符號,長度 ≥ 12 位。
  • 防火牆配合:在雲廠商安全組或服務器 iptables 僅開放 3306 端口給信任 IP。
  • 禁用 Root 遠程登入:建議創建專用業務帳號,禁止 root 遠程登入。
  • 啟用 SSL:配置 REQUIRE SSL 強制加密傳輸。

常見問題排查

  1. 連接被拒絕:檢查 bind-address 是否設為 0.0.0.0 或具體內網 IP。
  2. 權限不生效:執行 FLUSH PRIVILEGES; 並確認用戶@主機匹配(注意大小寫)。
  3. 防火牆攔截:確認雲控制台安全組、本機 firewalld/ufw 已放行 3306。

掌握上述配置,即可靈活控制 MySQL 遠程訪問權限,平衡開發便利性與生產安全性。

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