当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秒后捕获了超时,但是评估了错误消息
“无法路由到主机”
我尝试再查询一次。
读写查询发送时如何编码评估超时?
答案 0 :(得分:0)
我非常怀疑防火墙是否阻止了通往数据库的路由。由于主机本身无法访问,因此超时很明显。 10秒钟的评估基于您编写的计时器,由于防火墙阻止了DBHost,因此您没有将Timeout作为评估的错误。