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

MySQL 開啟遠程訪問完整步驟與安全最佳實踐

     編輯:MySQL 綜合教學

MySQL 開啟遠程訪問完整步驟與安全最佳實踐

預設 MySQL 僅允許本地連線,生產環境常需開放遠程訪問。本文說明授權語法、防火牆配置、加密傳輸與最小權限原則,助你安全開放遠程連線。

一、核心授權語句

-- 授予 root 從任意主機(%)以密碼 'root' 訪問所有庫所有表,含 GRANT OPTION
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
-- 立即生效
FLUSH PRIVILEGES;

參數解析:

  • *.*:所有資料庫、所有表。
  • 'root'@'%':用戶 root,% 通配任意 IP。生產建議限制具體網段,如 'app_user'@'10.0.1.%'。
  • IDENTIFIED BY 'root':設定密碼(MySQL 5.7+ 建議用 CREATE USER ... IDENTIFIED BY ... 再 GRANT)。
  • WITH GRANT OPTION:允許該用戶將自己的權限再授予他人,謹慎使用。

二、配置檔與網路檢查

  1. bind-address:/etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf 中確保 bind-address = 0.0.0.0(監聽所有介面)或具體內網 IP,預設 127.0.0.1 僅本地。修改後重啟 MySQL。
  2. 防火牆:開放 3306 埠(或自訂埠)僅對應用伺服器 IP 白名單。
    # firewalld 範例
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.1.0/24" port protocol="tcp" port="3306" accept'
    firewall-cmd --reload
  3. 驗證連線:
    mysql -h  -u root -p -P 3306

三、安全強化建議

  • 最小權限:應用帳號僅授予必要庫、表的 SELECT/INSERT/UPDATE/DELETE,嚴禁 ROOT/% 直連生產。
  • 強密碼策略:啟用 validate_password 插件,強制長度、複雜度、過期輪換。
  • SSL 加密傳輸:配置 require_secure_transport=ON,簽發憑證,連線參數加 --ssl-mode=VERIFY_IDENTITY。
  • 審計日誌:開啟 audit_log 記錄登入、DDM/DCL 操作。
  • 定期審查帳號:SELECT user, host FROM mysql.user; 清理無用/過期帳號。

結語:遠程訪問是雙刃劍,遵循「最小權限、網路隔離、加密傳輸、審計追蹤」四原則,才能在便利運維與資料安全間取得平衡。

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