Mysql golang sql查询超时

Mysql golang sql查询超时,mysql,go,timeout,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.QueryCon

我想在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秒的评估基于您编写的计时器,您不会得到超时作为评估错误,因为防火墙正在阻止您的数据库主机。

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