【问题标题】:MYSQL: How to check exit status?MYSQL:如何检查退出状态?
【发布时间】:2014-01-26 21:23:12
【问题描述】:

我的 mysql 远程连接有问题。一台服务器位于美国,另一台位于荷兰,它们之间的连接非常糟糕,尤其是在晚上。

我设法通过设置超时解决了select 查询

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

但我不知道如何解决update 查询,因为它应该只发送一次。

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

【问题讨论】:

    标签: mysql sql bash ubuntu remote-access


    【解决方案1】:

    同样的方式:

    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的退出代码和输出结果是否正确和预期的结果。
    • 如果你能举一个例子说明你是如何在 bash 中做到这一点的。
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多