SSL не включен на сервере

106

Пытаемся связаться с базой данных postgres с помощью go, подготовив такой оператор:

var stmt *sql.Stmt
var err error

stmt, err = db.Prepare(selectStatement)
if err != nil {
    fmt.Printf("db.Prepare error: %v\n",err)
    return err
}

Выдает следующую ошибку:

db.Prepare error: pq: SSL is not enabled on the server

Любое решение?

Если нужно, могу добавить дополнительную информацию.

Густаво Семиау-Лобо
источник
1
//, я получил эту ошибку в HashiCorp Vault.
Натан Басанезе
2
@NathanBasanese, я знаю, что это было давно, но я решил эту проблему, добавив ?sslmode=disableстроку подключения.
LucasBr

Ответы:

186

Вы должны установить соединение с БД без SSL-шифрования, например:

db, err := sql.Open("postgres", "user=test password=test dbname=test sslmode=disable") 
Каву
источник
спасибо за этот комментарий спасения жизни. btw: кто-нибудь знает, как настроить psql для поддержки SSL для контейнера докеров?
храм
123

Если имя вашего источника данных является URL-адресом, вы сделаете это следующим образом:

db, err := sql.Open("postgres", "postgres://username:password@localhost/db_name?sslmode=disable")

sslmode просто добавляется к URL-адресу db как параметр запроса.

Eatonphil
источник
19

Чтобы установить соединение без SSL, попробуйте

postgres://username:password@host:5432/database?sslmode=disable
Харальд Нордгрен
источник
1
//, я добавил это в свою строку подключения, и он успешно сработал. Спасибо, @Harald.
Натан Басанезе
13

Обратите внимание, пожалуйста:

Это происходит даже в том случае, если вы указали a sslmode=disable, но оставили пустой другой параметр. Напримерdbname=

Например, строка подключения:

user=test password=test dbname=sslmode=disableтакже вызовет эту ошибку , потому что имя базы данных пусто.

лягушки
источник
4
Это избавило меня от настройки локального разработчика, потому что пароль здесь был пуст.
Перелин
0

Вот как у меня это работает:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
гильдный
источник