原創|其它|編輯:郝浩|2009-07-08 14:28:59.000|閱讀 672 次
概述:MySQL作為數據庫,簡直就是易用的代名詞,絕大多數數據庫驅動的web應用程序都選擇它做為自己的數據庫。正因如此,MySQL被應用于很多WEB服務器上。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
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端口(而不管它是用戶賬戶還是根賬戶)。為了正常連接,你可能不得不給user@localhost.localdomain許可。
這樣做之后,你將能夠使用本地WEB上的任何一個系統,跨越Internet而又毫無風險的連接遠程數據庫(除非本地機器上防火墻規則阻止了它),這樣之后,你仍然可以使用本地的MySQL命令行工具操作遠程數據庫:
$ mysql -u root -p -h me.domain.com -P 13306
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:IT專家網論壇