SSL non è abilitato sul server


101

Cercando di comunicare con un database postgres con go, preparando l'affermazione in questo modo:

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
}

Genera il seguente errore:

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

Qualche soluzione?

Posso aggiungere ulteriori informazioni, se necessario.


1
//, ho ricevuto questo errore in HashiCorp Vault.
Nathan Basanese

2
@NathanBasanese, so che è passato molto tempo, ma ho risolto questo problema aggiungendo una ?sslmode=disablestringa di connessione.
LucasBr

Risposte:


181

Dovresti stabilire una connessione DB senza crittografia SSL, in questo modo:

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

grazie per questo commento che salva la vita. btw: qualcuno sa come impostare psql per supportare SSL per il contenitore docker?
tempio

121

Se il nome dell'origine dati è un URL, lo farai in questo modo:

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

sslmode viene semplicemente aggiunto all'URL del database come un parametro di query.


18

Per stabilire una connessione senza SSL, prova

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

//, l'ho aggiunto alla mia stringa di connessione e ha funzionato correttamente. Grazie, @Harald.
Nathan Basanese

10

Avviso, per favore:

Ciò si verifica anche se hai indicato a sslmode=disable, ma hai un altro parametro vuoto. Per esempiodbname=

Ad esempio, stringa di connessione:

user=test password=test dbname=sslmode=disableemetterà anche questo errore , perché dbname è vuoto.


4
Questo mi ha salvato sulla configurazione dello sviluppatore locale, perché la password era vuota qui.
perelin

0

Ecco come l'ho fatto funzionare:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.