2016-01-07 63 views
-1

我想弄清楚如何測試一個連接是否可能與一組給定的用戶,pw和db名稱信息。我從環境文件解析出user_name,password和database_name,然後我想測試連接是否可行。如果可能,請繼續執行腳本的其餘部分,如果不可行,請退出並打印錯誤消息。我想測試連接,因爲我有另一個更大的腳本,它只運行一切,但如果它失敗,我無法分辨它失敗的位置。如何測試連接到mysql服務器?

+0

$ conn =(SQL statement); if(!$ conn){error output} else {do logic}; – Anton

回答

1

您可以無操作連接:

mysql -e '\q' 

如果我運行這個用合適的.my.cnf文件,$?爲零。如果我嘗試使用不同的用戶:

mysql -u root -e '\q' 

然後我得到一個錯誤消息(可以用2>/dev/null被重定向路程)和$?非零。

請注意,與使用帶有SQL庫的語言和跨越多個命令的連接相比,這是一個相當有限的測試。例如。一個連接可能會成功,但由於網絡條件或用戶的conf文件或服務器身份驗證的更改,後面的連接可能會失敗。

0

,我要去把htis作爲回答,這樣我可以使用格式...

做類似如下的東西。我不知道你用的是什麼代碼,所以這是一個很普通的例子:

 $conn = (SQL statement); 
    if (!$conn) 
     {error output} 
    else 
     {do logic}; 

所以,如果你有很多報表和您使用的每一個獨特的錯誤輸出,那麼你可以爲他們每個人做這種事情通過閱讀輸出可以輕鬆分辨出哪一個問題導致了問題。

+0

這是真的殼嗎?它看起來更像perl ... –

+0

它不是shell,因爲我提到它是一個通用示例,php是具體的。每次使用它時,您仍然應該能夠檢查conn變量是否有非法值。它可以節省您單獨運行每一個 – Anton