我的 mysql 远程连接有问题。一台服务器位于美国,另一台服务器位于荷兰,它们之间的连接很糟糕,尤其是在晚上。
我设法通过设置超时来解决select
查询
done < <(mysql --connect_timeout=10 --batch -e "${selectQ}" -u${user} -p${password} ${database} -h ${host})
但我不知道如何解决更新
查询,因为它应该只发送一次。
echo "UPDATE table set field='1' WHERE id='${id}'" | mysql -u${user} -p${password} ${database} -h ${host}
最佳答案
同样的方式:
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
关于MYSQL:如何检查退出状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369396/