SSL n'est pas activé sur le serveur


101

Essayer de communiquer avec une base de données postgres avec go, préparer la déclaration comme ceci:

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
}

Lance l'erreur suivante:

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

Toute solution ?

Je peux ajouter plus d'informations, si nécessaire.


1
//, j'ai fini par avoir cette erreur dans HashiCorp Vault.
Nathan Basanese

2
@NathanBasanese, je sais que c'était il y a longtemps, mais j'ai résolu cela en ajoutant une ?sslmode=disablechaîne de connexion.
LucasBr

Réponses:


181

Vous devez établir une connexion DB sans cryptage SSL, comme ça:

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

merci pour ce commentaire salvateur. btw: quelqu'un sait comment configurer psql pour prendre en charge SSL pour le conteneur docker?
temple

121

Si le nom de votre source de données est une URL, procédez comme suit:

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

sslmode est simplement ajouté à l'url de la base de données comme un paramètre de requête.


18

Pour établir une connexion sans SSL, essayez

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

//, j'ai ajouté ceci à ma chaîne de connexion, et cela a fonctionné avec succès. Merci, @Harald.
Nathan Basanese

10

Avis, s'il vous plaît:

Cela se produit même si vous avez indiqué a sslmode=disable, mais que vous avez un autre paramètre vide. Par exempledbname=

Par exemple, chaîne de connexion:

user=test password=test dbname=sslmode=disableva également émettre cette erreur , parce que dbname est vide.


4
Cela m'a sauvé sur ma configuration de développement local, car le mot de passe était vide ici.
perelin

0

Voici comment je l'ai fait fonctionner:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.