MySQL 是易用代名詞,絕大多數資料庫驅動的 Web 應用選擇它。許多 MySQL 部署於 Web 伺服器上。雖命令列工具實用,但完成任務有時耗時,除非精通 SQL 語法。因此 PHPMyAdmin 等工具廣受歡迎。
MySQL 官方現提供 GUI 工具:MySQL Administrator、MySQL Query Browser、MySQL Workbench,簡化資料庫建立與操作。但遠程連線問題在於:這些工具通常要求 MySQL 監聽網路介面;多數管理員僅開啟本地主機或 Socket 監聽,不允許遠程連線。這是良好安全習慣,但讓人難以舒服地遠程使用 GUI 工具。使用 SSH 隧道連接效果極好:不僅允許高強度驗證與加密,且對 MySQL 僅監聽本地連線的設置零妥協。
~/.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 為本地工作站名)。
$ ssh -f -N remotesql
me.domain.com:13306(無論用戶帳號或 root)。可能需授權 user@localhost.localdomain 以正常連線。完成後,可使用本地網路上任何系統,跨越 Internet 安全連線遠程資料庫(除非本機防火牆阻擋)。仍可用本地 MySQL 命令列工具操作遠程資料庫:
$ mysql -u root -p -h me.domain.com -P 13306