2014-01-26 51 views
0

我與MySQL遠程連接有問題。一臺服務器位於美國,另一臺位於荷蘭,兩臺服務器之間的連接非常糟糕,尤其是在晚上。MYSQL:如何檢查退出狀態?

我設法通過設置超時

done < <(mysql --connect_timeout=10 --batch -e "${selectQ}" -u${user} -p${password} ${database} -h ${host}) 

解決select查詢,但我不知道如何解決update查詢,因爲它應該只發送一次。

echo "UPDATE table set field='1' WHERE id='${id}'" | mysql -u${user} -p${password} ${database} -h ${host} 

回答

0

同樣的方式:

echo "UPDATE table set field='1' WHERE id='${id}'" | 
     mysql --connect_timeout=10 -u${user} -p${password} ${database} -h ${host} 

,以檢查結果,這裏有一個例子:

myhost:~ # echo "silly query;"|mysql -unoone -pwrong DBEMPTY -hlocalhost 
ERROR 1045 (28000): Access denied for user 'noone'@'localhost' (using password: YES) 
myhost:~ # echo $? 
1 
myhost:~ # echo "select 0;"|mysql -uvaliduser -pproperpassword MYTESTDB -hlocalhost 
0 
0 
myhost:~ # echo $? 
0 
+0

,爲什麼你相信它會發送成功? – Orlo

+0

與往常一樣,您需要檢查mysql的退出代碼以及輸出結果是否正確以及預期結果。 –

+0

如果你能舉一個例子說明你如何在bash中做到這一點,那將會很好。 – Orlo