【问题标题】:golang sql query timeoutgolang sql查询超时
【发布时间】:2019-02-08 06:32:03
【问题描述】:

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

“没有到主机的路由”

我尝试再查询一次。

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

【问题讨论】:

  • 您的问题与超时完全无关。正如错误消息所说,问题在于没有通往主机的路由。无论您尝试连接到哪个数据库服务器,都无法访问。

标签: mysql go timeout


【解决方案1】:

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

【讨论】:

  • 真的很感谢你~,谢谢^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 2012-10-16
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多