douzhanyan5015 2019-05-08 09:49
浏览 553
已采纳

连接:连接超时

I have successfully connected to a Postgres database using the go sql package:

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

I then use the returned database to execute a (long running) query:

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

And am getting the error:

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

I have a couple of questions regarding this:

  1. why is the connection timing out?
  2. is there anything I can do to prevent it timing out?
  • 写回答

1条回答 默认 最新

  • dongzhoulong1797 2019-05-08 10:24
    关注

    sql.Open() may just validate its arguments without creating a connection to the database. To verify that the data source name is valid, call Ping.

    The sql.Open() function has only created an object, your pool is currently empty. In simple words connection with the database hasn't been established yet.

    You need to call db.Ping() to make sure your pool has a working connection.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?