连接:连接超时

时间:2019-05-08 09:49:37

标签: postgresql go

我已经使用go sql程序包成功连接到Postgres数据库:

...
db, err := sql.Open("postgres", connStr)

然后我使用返回的数据库执行(长期运行)查询:

rows, err := db.Query(...)

并收到错误消息:

dial tcp xx.xxx.xxx.xx:5432: connect: connection timed out

对此我有几个问题:

  1. 为什么连接超时?
  2. 我能做些什么来防止它超时吗?

1 个答案:

答案 0 :(得分:1)

  

sql.Open()可以仅验证其参数,而无需创建连接   数据库。要验证数据源名称是否有效,请致电Ping

sql.Open()函数仅创建了一个对象,您的池当前为空。简而言之,尚未建立与数据库的连接。

您需要致电db.Ping(),以确保您的池具有有效的连接。