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

SSH 隧道安全遠程管理 MySQL:GUI 工具(Workbench/Administrator)實戰配置

     編輯:MySQL 資料庫相關知識

場景痛點

生產 MySQL 僅監聽 127.0.0.1 或 Unix Socket,拒絕遠程 TCP 連線;GUI 工具(MySQL Workbench、Administrator、Query Browser)需網路介面。

SSH 隧道方案優勢

  • 不開放 3306 埠對外,符合最小權限原則。
  • SSH 強認證(金鑰/密碼)+ 加密傳輸,安全性高。
  • 本地工具體驗與直連無異。

伺服器端準備

  1. 確認 my.cnf bind-address = 127.0.0.1(或註釋掉 skip-networking)。
  2. 重啟 MySQL:systemctl restart mysql。
  3. 建立專用 SSH 帳號(建議非 root,僅具備 SSH 登入權限)。

客戶端配置(Linux/macOS/Windows 10+ OpenSSH)

# ~/.ssh/config
Host remotesql
    HostName db.example.com
    User devops
    LocalForward 13306 127.0.0.1:3306
    # 若需其它電腦連本機隧道,改為 LocalForward *:13306 127.0.0.1:3306

啟動隧道:

ssh -f -N remotesql   # -f 背景執行,-N 不開 shell

GUI 工具連線設定

  • Hostname: 127.0.0.1(或 localhost 若工具強制解析為 socket,請用 127.0.0.1)
  • Port: 13306
  • Username/Password: MySQL 資料庫帳號

命令列驗證

mysql -u root -p -h 127.0.0.1 -P 13306

進階技巧

  • 系統服務化:用 autossh + systemd 讓隧道開機自動重連。
  • 多跳:跳板機 ProxyJump 串聯內網 DB。
  • Windows 舊版:PuTTY Connection → SSH → Tunnels 設定 Source port 13306、Destination 127.0.0.1:3306。

常見問題

  • Access denied:檢查 MySQL 帳號 host 欄位是否允許 127.0.0.1 或 %。
  • 隧道斷線:啟用 ServerAliveInterval 60 保持心跳。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved