Mullefa
Mullefa

Reputation: 1247

connect: connection timed out

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?

Upvotes: 1

Views: 2539

Answers (1)

Sher Afgan
Sher Afgan

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

Related Questions