戈朗 SQL 查询超时



我想在针对防火墙的 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 秒后捕获超时,但评估了错误消息

"没有到主机的路线">

我尝试再查询一次。

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

我非常怀疑防火墙是否阻止了到数据库的路由。超时是显而易见的,因为主机本身是无法访问的。10 秒的评估基于您编写的计时器,并且由于防火墙阻止了您的 DBHost,因此您不会因评估错误而超时。

相关内容

  • 没有找到相关文章