Golang SQL查询超时

时间:2019-02-08 06:32:04

标签: mysql go timeout

当DBMS上没有针对防火墙返回查询时,我想返回。

首先,我设置代码

c, err := sql.Open("mysql",dbid+":"+dbps+"@tcp("+dbip[0]+":"+dbpt+")/"+dbnm+"?timeout=5s")

但是,不要那样做。

第二,我在上下文包中使用了该函数。

 ctx, cancel := content.WithTimeout(context.Background(), time.Second * 10)
 ret, err := db.QueryContext(ctx, "Select * from aaaa")

它在10秒后捕获了超时,但是评估了错误消息

  

“无法路由到主机”

我尝试再查询一次。

读写查询发送时如何编码评估超时?

1 个答案:

答案 0 :(得分:0)

我非常怀疑防火墙是否阻止了通往数据库的路由。由于主机本身无法访问,因此超时很明显。 10秒钟的评估基于您编写的计时器,由于防火墙阻止了DBHost,因此您没有将Timeout作为评估的错误。