サーバーでSSLが有効になっていません


100

goを使用してpostgresデータベースと通信しようとし、次のようなステートメントを準備します。

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でこのエラーが発生しました。
Nathan Basanese

2
@NathanBasanese、私はそれがずっと前だったことを知っていますが、私は?sslmode=disableon接続文字列を追加することを解決しました。
LucasBr

回答:


180

次のように、SSL暗号化なしでDB接続を確立する必要があります。

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

この命を救うコメントをありがとう。btw:DockerコンテナーのSSLをサポートするようにpsqlを設定する方法を知っている人はいますか?
寺院

121

データソース名がURLの場合、次のようにします。

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

sslmode クエリパラメータのようにdb urlに追加されるだけです。



10

お知らせ:

これは、を指定したがsslmode=disable、他のパラメーターが空の場合にも発生します。例えばdbname=

たとえば、接続文字列:

user=test password=test dbname=sslmode=disableにも、このエラーを出す dbnameは空であるため、。


4
ここでパスワードが空だったので、ローカルの開発セットアップで私を救った。
ペレリン

0

これは私がそれを機能させた方法です:

db, err := sql.Open("postgres", "postgres://{user}:{password}@{hostname}:{port}/{database-name}?sslmode=disable")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.