2009-09-08 83 views

回答

2

MySQL有一個命令行客戶端,您可以在其中運行查詢。如果您不想允許遠程連接服務器上的數據庫,則仍然可以將某些內容編寫到批處理中。有一些命令行telnet/ssh客戶端,它們可以接受外部文件作爲遠程運行的命令列表,也可以將輸入流重定向(少於符號)傳遞給它們。

打開與服務器的連接時 - 大多數客戶端都被編程,因此指定登錄密碼的唯一方法是從鍵盤輸入(是的,它們不使用默認輸入流)。像這樣的事情很難編寫腳本。但是,可以在SSH上設置基於證書的登錄 - 您實際上必須研究這一點。

如果託管MySQL數據庫的服務器也是一個Web服務器 - 您也可以考慮在密碼保護區域放置一些腳本(PHP,Perl,Python,Ruby - 無論你喜歡什麼),這將允許你通過簡單地對該腳本進行HTTP(S)查詢來執行查詢。雖然Windows沒有命令行HTTP(S)客戶端,但您始終可以獲得諸如wget.exe之類的內容,並對其執行查詢。請注意,如果您選擇此方法 - 強烈建議將該腳本置於HTTPS之下 - 如果被惡意用戶發現,可能會對您的數據造成致命性影響。

+0

來訪問mysql,這對於服務器上的php腳本是一個非常好的想法!謝謝 – ondrobaco

0

如果您希望更安全,可以使用telnet或SSH。

0

如果MySQL是在Linux或BSD上運行,你需要通過類似putty

這是一個Telnet或SSH連接將打開遠程服務器上的命令行。該命令是mysql。遠程用戶的身份驗證會出現問題(如您所期望的)。

如果遠程服務器正在運行Windows,則會遇到一組完全不同的問題。

我不確定您可以連接到遠程Windows服務器並以此方式進行控制。

應該說我不確定如何連接到遠程Windows服務器並以此方式使用它。但毫無疑問,這是可能的。

+0

mysql在linux服務器上。我希望Windows機器通過cmd – ondrobaco

3

是的,您可以通過運行mysql -h 123.45.67.89連接到不同的主機。 請注意,有幾個安全隱患:

  1. 您將不得不授予自己的訪問權限。您將需要運行諸如GRANT ALL on db_name.table TO [email protected]_ip IDENTIFIED BY 'password'之類的東西。 db_name,tableyour_ip可能是*但要小心將您的服務器打開給黑客。
  2. 如果你不在同一個LAN上,你將不得不打開你的服務器的防火牆。再一次,ymmv,你應該知道不要打開利用的大門。
  3. 您可能想要使用SSL並使用secure-auth以保護您的流量和憑據。

希望有所幫助。