我已经使用go sql程序包成功连接到Postgres数据库:
...
db, err := sql.Open("postgres", connStr)
然后我使用返回的数据库执行(长期运行)查询:
rows, err := db.Query(...)
并收到错误消息:
dial tcp xx.xxx.xxx.xx:5432: connect: connection timed out
对此我有几个问题:
答案 0 :(得分:1)
sql.Open()可以仅验证其参数,而无需创建连接 数据库。要验证数据源名称是否有效,请致电Ping 。
sql.Open()
函数仅创建了一个对象,您的池当前为空。简而言之,尚未建立与数据库的连接。
您需要致电db.Ping()
,以确保您的池具有有效的连接。