SSL ist auf dem Server nicht aktiviert


99

Der Versuch, mit go mit einer Postgres-Datenbank zu kommunizieren, bereitet die Anweisung folgendermaßen vor:

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
}

Wirft den folgenden Fehler:

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

Irgendeine Lösung ?

Bei Bedarf kann ich weitere Informationen hinzufügen.


1
// Ich habe diesen Fehler in HashiCorp Vault erhalten.
Nathan Basanese

2
@ NathanBasanese, ich weiß, dass es lange her ist, aber ich habe das Problem gelöst, indem ich eine ?sslmode=disableOn-Connection-Zeichenfolge angehängt habe .
LucasBr

Antworten:


179

Sie sollten eine DB-Verbindung ohne SSL-Verschlüsselung wie folgt herstellen:

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

Danke für diesen lebensrettenden Kommentar. Übrigens: Weiß jemand, wie man psql so einstellt, dass SSL für Docker-Container unterstützt wird?
Tempel

121

Wenn Ihr Datenquellenname eine URL ist, gehen Sie folgendermaßen vor:

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

sslmode wird nur wie ein Abfrageparameter zur Datenbank-URL hinzugefügt.


18

Versuchen Sie es, um eine Verbindung ohne SSL herzustellen

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

//, ich habe dies zu meiner Verbindungszeichenfolge hinzugefügt und es hat erfolgreich funktioniert. Danke, @Harald.
Nathan Basanese

10

Bitte beachten Sie:

Dies tritt sogar auf, wenn Sie a angegeben haben sslmode=disable, aber andere Parameter leer haben. Beispielsweisedbname=

Beispiel: Verbindungszeichenfolge:

user=test password=test dbname=sslmode=disablewird auch diesen Fehler ausgeben , da der Datenbankname leer ist.


4
Dies hat mich bei meinem lokalen Entwickler-Setup gerettet, da das Passwort hier leer war.
Perelin

0

So habe ich es zum Laufen gebracht:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.