程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 精細講解遠程安全如何使用MySQL GUI工具

精細講解遠程安全如何使用MySQL GUI工具

編輯:關於MYSQL數據庫
MySQL作為數據庫,簡直就是易用的代名詞,絕大多數數據庫驅動的web應用程序都選擇它做為自己的數據庫。正因如此,MySQL被應用於很多WEB服務器上。雖然說MySQL的命令行工具確實有用,但要它完成任務有時實在是在跟時間過不去,除非你對SQL語法已經通吃,熟到爐火純青的地步。正是由於這個原因,像PHPMyAdmin之類的工具已經變得如此流行。

  MySQL開發者們已經開始使用他們自己的GUI工具,它們能夠用來和本地或遠程的MYSQL數據庫進行連接。這些工具包括MySQL Administrator、MySQL Query Browser、以及MySQL Workbench。它們都是不錯的圖形界面的工具,簡化了對MySQL數據庫的創建和操作。

  使用這些工具操作遠程數據庫的問題是,它們通常要求你使MySQL對WEB接口進行監聽;而大多數MySQL管理員只會選擇對本地主機或某個套接字開啟MySQL監聽,而不會允許遠程連接。這是很好的安全習慣;可是,它讓你不花出一點點努力就別想舒舒服服地遠程使用這些GUI工具。這裡使用ssh隧道[2](tunnel)進行連接效果極好。它不僅允許高強度驗證和加密,而且對於MySQL只監聽本地連接的設定也毫不妥協。

  首先,必須要保證MySQL監聽本地主機[2](默認情況下它只監聽本地套接字上的連接),這可以通過告訴MySQL允許WEB連接並重新啟動服務器來實現。MySQL應該配置成只監聽loopback接口,或者本地接口,或者WEB接口。

  接下來,編輯你希望用來發起連接的主機上的~/.ssh/config文件,並插入如下內容:

Host remotesql
?Hostname webserver.domain.com
?User joe
?LocalForward *:13306 localhost:3306

  這會以用戶joe連接webserver.domain.com,並且把本地系統上的13306端口轉發(forward)到webserver.domain.com的3306端口(這是標准MySQL端口)。注意我們沒有把被轉發端口和本地機器上的本地接口進行綁定,而是指向了所有接口;這就是說我們可以連上me.domain.com的13306端口(假設me.domain.com是本地工作站的名字),而不是去連接本地主機上的13306端口(這很重要,因為這些GUI工具會試圖使用一個套接字來連接本地主機,而這不是我們希望的。)現在你可以發起連接,方法是執行:

$ ssh -f -N remotesql

  最後,激活MySQL的管理員賬戶,並且通過你的信任證書,讓它連接me.domain.com的13306端口(而不管它是用戶賬戶還是根賬戶)。為了正常連接,你可能不得不給[email protected]許可。

  這樣做之後,你將能夠使用本地WEB上的任何一個系統,跨越Internet而又毫無風險的連接遠程數據庫(除非本地機器上防火牆規則阻止了它),這樣之後,你仍然可以使用本地的MySQL命令行工具操作遠程數據庫:

$ MySQL -u root -p -h me.domain.com -P 13306
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved