Sunucuda SSL etkin değil


106

Bir postgres veritabanı ile go ile iletişim kurmaya çalışarak, aşağıdaki gibi bir ifade hazırlayarak:

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
}

Aşağıdaki hatayı atar:

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

Herhangi bir çözüm ?

Gerekirse daha fazla bilgi ekleyebilirim.


1
//, HashiCorp Kasasında bu hatayı alıyorum.
Nathan Basanese

2
@NathanBasanese, uzun zaman önce olduğunu biliyorum, ama bunu bir ?sslmode=disablebağlantı dizesi ekleyerek çözdüm .
LucasBr

Yanıtlar:


185

Aşağıdaki gibi SSL şifrelemesiz bir DB bağlantısı kurmalısınız:

db, err := sql.Open("postgres", "user=test password=test dbname=test sslmode=disable") 

Hayat kurtaran bu yorum için teşekkürler. btw: docker container için SSL'yi desteklemek üzere psql'nin nasıl ayarlanacağını bilen var mı?
tapınak

122

Veri kaynağı adınız bir url ise, bunu şu şekilde yapacaksınız:

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

sslmode db url'sine bir sorgu parametresi gibi eklenir.


19

SSL olmadan bir bağlantı kurmak için deneyin

postgres://username:password@host:5432/database?sslmode=disable

1
//, bunu bağlantı dizime ekledim ve başarıyla çalıştı. Teşekkürler @Harald.
Nathan Basanese

12

Lütfen dikkat edin:

Bu, belirtmiş olsanız bile meydana gelir. sslmode=disable , ancak diğer parametresi boşsa . Örneğindbname=

Örneğin, bağlantı dizesi:

user=test password=test dbname=sslmode=disabledbname boş olduğundan da bu hatayı verecektir .


4
Bu beni yerel geliştirici kurulumuma kurtardı, çünkü burada şifre boştu.
perelin

0

İşte böyle çalıştırdım:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.