दूरस्थ रूप से अभिगमन पश्चात डेटाबेस


46

मुझे 12.10 पर चलने वाले DigitalOcean पर एक VPS पर एक रिमोट मशीन से एक पोस्टग्रैसक्ल डेटाबेस को एक्सेस करने की आवश्यकता है और 9.1 9.1 पोस्टग्रेजेकल।

मैं यह कैसे करु? मैंने देखा कि पोर्ट 5432 बंद है, मैं इसे कैसे खोलूं?


1
Javabypatel.blogspot.in/2015/07/… में बताए गए चरणों का पालन करें और postgresql.conf फ़ाइल में मौजूद पोर्ट नंबर को बदलें। पोर्ट पुनरारंभ करने के बाद PostgreSQL सर्वर को फिर से शुरू करें।
जयेश

@ जयेश द्वारा पोस्ट किया गया Url ने किया ट्रिक। निर्देशों का पालन किया और सफलतापूर्वक मेरे एक विकास कंप्यूटर को दूसरे से जोड़ दिया (विंडोज़ से pgAdmin4 के साथ Ubuntu 18.04 पोस्टग्रैसक्कल 10.9)
EAmez

जवाबों:


78

पोर्ट को खोलने के लिए 5432 अपना संपादन करें /etc/postgresql/9.1/main/postgresql.confऔर बदलें

listen_addresses='localhost'

सेवा

listen_addresses='*'

और अपना DBMS पुनः आरंभ करें

invoke-rc.d postgresql restart

अब आप से जुड़ सकते हैं

$ psql -h hostname -U username -d database

यदि आप स्वयं को प्रमाणित करने में असमर्थ हैं, तो आपको अपने उपयोगकर्ता को अपने डेटाबेस पर अधिकार प्रदान करने की आवश्यकता है

अपने को संपादित करें

/etc/postgresql/9.1/main/pg_hba.conf

और जोड़

host all all all md5

(यह एक विस्तृत खुली पहुंच के लिए है। सख्त नियंत्रण के लिए, pg_hba.conf प्रलेखन से परामर्श करें और अपनी आवश्यकताओं के अनुसार समायोजित करें)।

इसके बाद आपको पुनः लोड करने की भी आवश्यकता है

invoke-rc.d postgresql reload

मुझे यह उल्लेख करने की आवश्यकता नहीं है कि यह एक बुनियादी विन्यास है, अब आपको अपने फ़ायरवॉल को संशोधित करने और अपने DBMS की सुरक्षा में सुधार करने के बारे में सोचना चाहिए।


4
विशेष रूप से, आपको एसएसएल को सक्षम करना चाहिए।
क्रेग रिंगर

ओके, मैंने यह कोशिश की, लेकिन जब मैं अपने कंप्यूटर से pgAdmin का उपयोग करके कनेक्ट करने का प्रयास करता हूं, तो मुझे "सर्वर नहीं सुन रहा है" मिलता है। मैंने iptables में जोड़ा, और जब मैं iptables -L निम्न शो चलाता हूं: ACCEPT tcp - कहीं भी tcp dpt: postgresql इस साइट पर आईपी और पोर्ट की जाँच करते समय ( yougetsignal.com/dools/open-ports ), यह कहता है port बंद है
19yvind

2
क्या सर्वर सुन रहा है? साथ की जाँच करेंnetstat -nlt|grep :5432

1
मैं मेजबान पंक्ति को और अधिक सख्त तरीके से सम्मिलित करूंगा:host <database> <user> <remote_client_IPaddress>/24 md5
gc5

Postgresql संस्करण 9.5 के लिए आपको सुनाने से पहले सर्वर को पुनः आरंभ करने की आवश्यकता हो सकती है।
हीदर 92065 19

26

यह अब काम नहीं करता है, अगर यह कभी किया:

सभी को होस्ट करें * md5

इसके लिए सही संभावित रेखाएँ हैं:

सभी को 0.0.0.0/0 md5 # ipv4 रेंज होस्ट करें

सभी को होस्ट करें :: 0/0 md5 # ipv6 रेंज

सभी सभी md5 #all ip को होस्ट करें

स्रोत


4
यह निश्चित रूप से चाल चली गई। उपरोक्त उत्तर निश्चित रूप से काम नहीं किया।
माइक

कृपया @ माइक व्यक्त करें कि क्या सही है: host all all all md5ठीक काम करेगा? यह सही है? कोई सुरक्षा समस्या?
पीटर क्रूस

@peterkrauss Yes, host all all md5 ने मेरे लिए काम किया। सुरक्षा समस्या? बेशक यह है, लेकिन मैं जो कर रहा था, वह ठीक था। (आंतरिक नेटवर्क)
माइक

3

संदेश के लिए "सर्वर नहीं सुन रहा है", जो मेरे साथ हुआ, वह यह था कि मैं आर्काइव पोस्टग्रैसेक्एल.कॉन्फ़ पर # का # मतलब नहीं मिटाता:

# Listen_addresses = 'स्थानीय होस्ट'

सेवा:

listen_addresses = '*'

(मेरी अंग्रेजी के लिए खेद है)।


0

सर्वोच्च मतदान और स्वीकृत उत्तर में गंभीर सुरक्षा-आवेग होते हैं। यह विधि डिफ़ॉल्ट रूप से अच्छे कारणों से अक्षम है।

स्थानीय पोर्ट अग्रेषण का बेहतर उपयोग करें ssh:

ssh -L local_port:localhost:foreign_port user@server

पोर्ट अग्रेषण प्रारंभ करें:

ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com

(अपने कॉन्फ़िगरेशन को फिट करने के लिए स्थानीय और विदेशी पोर्ट बदलें)।

फिर आप अपने स्थानीय कंप्यूटर से डेटाबेस से सीधे जुड़ सकते हैं:

psql -U db_user -p local_port -l
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.