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

遠程安全管理 MySQL:使用 SSH 隧道連接 GUI 工具

     編輯:MySQL 資料庫相關知識

背景

MySQL 是易用代名詞,絕大多數資料庫驅動的 Web 應用選擇它。許多 MySQL 部署於 Web 伺服器上。雖命令列工具實用,但完成任務有時耗時,除非精通 SQL 語法。因此 PHPMyAdmin 等工具廣受歡迎。

MySQL 官方現提供 GUI 工具:MySQL Administrator、MySQL Query Browser、MySQL Workbench,簡化資料庫建立與操作。但遠程連線問題在於:這些工具通常要求 MySQL 監聽網路介面;多數管理員僅開啟本地主機或 Socket 監聽,不允許遠程連線。這是良好安全習慣,但讓人難以舒服地遠程使用 GUI 工具。使用 SSH 隧道連接效果極好:不僅允許高強度驗證與加密,且對 MySQL 僅監聽本地連線的設置零妥協。

設置步驟

  1. 確保 MySQL 監聽本地介面(預設僅監聽本地 Socket)。配置 MySQL 允許網路連線並重啟服務,設定僅監聽 loopback 介面(127.0.0.1)。
  2. 編輯本地 ~/.ssh/config,加入:
    Host remotesql
        Hostname webserver.domain.com
        User joe
        LocalForward *:13306 localhost:3306

    以用戶 joe 連線 webserver.domain.com,將本地 13306 埠轉發至遠端 3306 埠(MySQL 標準埠)。注意 *:13306 綁定所有介面,而非僅本地介面,這很重要:GUI 工具會嘗試用 Socket 連線本地主機,這不是我們想要的。現在可連線 me.domain.com:13306(假設 me.domain.com 為本地工作站名)。

  3. 建立 SSH 隧道:
    $ ssh -f -N remotesql
  4. 啟用 MySQL 管理員帳號,透過信任憑證讓它連線 me.domain.com:13306(無論用戶帳號或 root)。可能需授權 user@localhost.localdomain 以正常連線。

結果

完成後,可使用本地網路上任何系統,跨越 Internet 安全連線遠程資料庫(除非本機防火牆阻擋)。仍可用本地 MySQL 命令列工具操作遠程資料庫:

$ mysql -u root -p -h me.domain.com -P 13306
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved