Reputation: 1247
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:
Upvotes: 1
Views: 2539
Reputation: 1234
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.
Upvotes: 1