एसएसएल सर्वर पर सक्षम नहीं है


101

इस तरह के बयान की तैयारी के साथ, पोस्टग्रेज डेटाबेस के साथ संवाद करने की कोशिश करना:

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 वॉल्ट में यह त्रुटि प्राप्त की।
— नाथन बसानी

2
@NathanBasanese, मुझे पता है कि यह बहुत समय पहले था, लेकिन मैंने ?sslmode=disableकनेक्शन स्ट्रिंग पर अपील करने के लिए हल किया ।
— लुकासब्र

जवाबों:


180

आपको SSL एन्क्रिप्शन के बिना DB कनेक्शन स्थापित करना चाहिए, जैसे:

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

इस बचत जीवन टिप्पणी के लिए धन्यवाद। btw: किसी को पता है कि doq कंटेनर के लिए SSL का समर्थन करने के लिए psql कैसे सेट करें?
— मंदिर

121

यदि आपका डेटा स्रोत नाम url है, तो आप इसे इस तरह से करेंगे:

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

sslmode बस एक क्वेरी पैरामीटर की तरह db url में जोड़ा जाता है।


18

SSL के बिना कनेक्शन स्थापित करने के लिए, प्रयास करें

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

//, मैंने इसे अपने कनेक्शन स्ट्रिंग में जोड़ा, और इसने सफलतापूर्वक काम किया। धन्यवाद, @ हेराल्ड।
— नाथन बसानी

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")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.