подключиться: время ожидания истекло - PullRequest
0 голосов
/ 08 мая 2019

Я успешно подключился к базе данных Postgres с помощью пакета go sql:

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

Затем я использую возвращенную базу данных для выполнения (длительного) запроса:

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

И я получаю сообщение об ошибке:

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

У меня есть пара вопросов по этому поводу:

  1. , почему истекло время ожидания соединения?
  2. Есть ли что-нибудь, что яможно сделать, чтобы предотвратить тайм-аут?

1 Ответ

1 голос
/ 08 мая 2019

sql.Open () может просто проверить свои аргументы , не создавая соединение с базой данных.Чтобы проверить правильность имени источника данных, вызовите Ping .

Функция sql.Open() создала только объект, ваш пул в настоящее время пуст.Проще говоря, связь с базой данных еще не установлена.

Вам необходимо позвонить db.Ping(), чтобы убедиться, что ваш пул имеет работающее соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...