पोर्ट 5432 पर postgresql से कनेक्ट नहीं कर सकता


82

मैंने Bitnami Django स्टैक स्थापित किया जिसमें PostgreSQL 8.4 शामिल था।

जब मैं चलता psql -U postgresहूं तो मुझे निम्नलिखित त्रुटि मिलती है:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

PG निश्चित रूप से चल रहा है और pg_hba.confफ़ाइल इस तरह दिखती है:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

क्या देता है?

"प्रमाण" जो pg चल रहा है:

root@assaf-desktop:/home/assaf# ps axf | grep postgres
14338 ?        S      0:00 /opt/djangostack-1.3-0/postgresql/bin/postgres -D /opt/djangostack-1.3-0/postgresql/data -p 5432
14347 ?        Ss     0:00  \_ postgres: writer process                                                                        
14348 ?        Ss     0:00  \_ postgres: wal writer process                                                                    
14349 ?        Ss     0:00  \_ postgres: autovacuum launcher process                                                           
14350 ?        Ss     0:00  \_ postgres: stats collector process                                                               
15139 pts/1    S+     0:00              \_ grep --color=auto postgres
root@assaf-desktop:/home/assaf# netstat -nltp | grep 5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      14338/postgres  
tcp6       0      0 ::1:5432                :::*                    LISTEN      14338/postgres  
root@assaf-desktop:/home/assaf# 

मुझे नहीं पता कि आप क्या पूछ रहे हैं और आपने कभी इनपुट नहीं दिया है। यह 100 लोगों की एक सामान्य त्रुटि है और विभिन्न चीजों की रिपोर्ट करना है। यह साइट के लिए पूरी तरह से प्रारूप से बाहर है।
इवान कैरोल

जवाबों:


87

यह समस्या postgresसंस्करण संख्या के बिना पैकेज को स्थापित करने से आती है । यद्यपि postgresयह स्थापित किया जाएगा और यह सही संस्करण होगा, क्लस्टर सेटअप करने की स्क्रिप्ट सही ढंग से नहीं चलेगी; यह एक पैकेजिंग मुद्दा है।

यदि आप सहज हैं तो postgresएक स्क्रिप्ट है जिसे आप इस क्लस्टर को बनाने और postgresचलाने के लिए चला सकते हैं। हालाँकि, एक आसान तरीका है।

पहले पुराने पोस्टग्रेज इंस्टॉल करें। मुद्दा अभी 9.1 के साथ है, इसलिए मैं मान लूंगा कि आपने क्या स्थापित किया है

sudo apt-get remove --purge postgresql-9.1

अब बस पुनः स्थापित करें

sudo apt-get install postgresql-9.1

संस्करण संख्या के साथ पैकेज का नाम नोट करें। HTH।


3
इससे मुझे 9.3 पोस्टग्रेट्स के साथ मदद मिली।
सेवंसेकैट

1
यह स्वीकृत उत्तर होना चाहिए, पोस्ट के साथ काम करता है 9.4 / ubuntu 14.10, भी
माल्टे

1
इस उत्तर ने मुझे 9.4 और 9.3 मिक्सअप पोस्टग्रेट्स के साथ मदद की। ठंडा।
इंगो

2
Ubuntu 16.04 के लिए काम किया और 9.5 को पोस्ट किया, लेकिन पहले हर पोस्ट संबंधित पैकेज को शुद्ध करना था ।
Evert

2
यह वास्तव में एक भयानक जवाब है! और पोस्टग्रेज पर एक भयानक उपयोगकर्ता अनुभव भी है
user1952500

23

त्रुटि संदेश एक यूनिक्स-डोमेन सॉकेट को संदर्भित करता है, इसलिए आपको netstatउन्हें बाहर न करने के लिए अपने आह्वान को मोड़ना होगा। तो विकल्प के बिना इसे आज़माएं -t:

netstat -nlp | grep 5432

मुझे लगता है कि सर्वर वास्तव में सॉकेट पर सुन रहा है /tmp/.s.PGSQL.5432बजाय इसके /var/run/postgresql/.s.PGSQL.5432कि आपका क्लाइंट कनेक्ट करने का प्रयास कर रहा है। डेबियन या उबंटू पर हाथ से संकलित या तीसरे पक्ष के पोस्टग्रेक्यूएल पैकेजों का उपयोग करते समय यह एक विशिष्ट समस्या है, क्योंकि यूनिक्स-डोमेन सॉकेट निर्देशिका के लिए स्रोत डिफ़ॉल्ट है, /tmpलेकिन डेबियन पैकेजिंग इसे बदलता है /var/run/postgresql

संभव कार्यपत्रक:

  • अपने तृतीय-पक्ष पैकेज (कॉल /opt/djangostack-1.3-0/postgresql/bin/psql) द्वारा आपूर्ति किए गए क्लाइंट का उपयोग करें । संभवतः उबंटू-आपूर्ति किए गए पैकेजों की पूरी तरह से स्थापना रद्द करें (अन्य रिवर्स निर्भरताओं के कारण मुश्किल हो सकती है)।
  • डेबियन / उबंटू के साथ संगत होने के लिए तृतीय-पक्ष पैकेज की सॉकेट निर्देशिका को ठीक करें।
  • -H localhostइसके बजाय टीसीपी / आईपी के माध्यम से कनेक्ट करने के लिए उपयोग करें ।
  • सही निर्देशिका को इंगित करने के लिए सेटिंग -h /tmpया समकक्ष PGHOSTसेटिंग का उपयोग करें ।
  • तृतीय-पक्ष पैकेज का उपयोग न करें।

19

यह मेरे लिए काम करता है:

संपादित करें: postgresql.conf

sudo nano /etc/postgresql/9.3/main/postgresql.conf

सक्षम या जोड़ें:

listen_addresses = '*'

डेटाबेस इंजन को पुनरारंभ करें:

sudo service postgresql restart

इसके अलावा, आप फ़ाइल की जाँच कर सकते हैं pg_hba.conf

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

और अपना नेटवर्क या होस्ट पता जोड़ें:

host    all             all             192.168.1.0/24          md5

the__ddress = '*' ने ट्रिक बनाई। यह केवल "लोकलहोस्ट" पर सुन रहा था और 127.0.0.1 पर नहीं। धन्यवाद!
mwm

मेरा भगवान ... आखिरकार कुछ ऐसा काम किया - जब तक मैंने पता नहीं जोड़ा और कुछ नहीं सुना तब तक काम नहीं किया।
एंटोनियो

एक और! इसने मेरे लिए काम किया।
अतुल मकवाना

1
यह ubuntu विंडोज़ बैश पर काम करता है।
अहमादालिबालोच

मैं पुष्टि कर सकता हूं कि यह विंडोज 10 पर उबंटू सर्वर कमांड बैश पर काम करता है
रोनाल्ड

18

आप psql -U postgres -h localhostUNIX डोमेन सॉकेट के बजाय टीसीपी पर होने वाले कनेक्शन को बाध्य करने के लिए उपयोग कर सकते हैं ; आपका netstatआउटपुट दिखाता है कि PostgreSQL सर्वर लोकलहोस्ट के पोर्ट 5432 पर सुन रहा है।

आप पा सकते हैं कि स्थानीय UNIX सॉकेट का उपयोग PostgrSQL सर्वर द्वारा netstat के एक अलग इनवोकेशन का उपयोग करके किया जाता है :

netstat -lp --protocol=unix | grep postgres

किसी भी दर पर, जिस पर PostgreSQL सर्वर सुनता है में इंटरफेस को कॉन्फ़िगर किया गया है postgresql.conf


17

बस इस तरह एक सॉफ्टलिंक बनाएं:

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

1
यह मेरे लिए काम करता है और आपके पोस्टग्रैक्स्फ़ल कॉन्फ़िगरेशन को बदलने के बिना सबसे आसान समाधान प्रतीत होता है। सुनिश्चित करें कि लिंक बनाने की कोशिश करते समय आप सुपरसुअर हैं।
ब्रेंडन

2
ln: प्रतीकात्मक लिंक '/var/run/postgresql/.s.PGSQL.5432' बनाने में विफल: फाइल मौजूद है
P_M

मैंने "postgresql" फ़ोल्डर को / var / run / निर्देशिका में बनाया है। यह मौजूद नहीं था।
इक्रोम

अद्भुत काम करता है, इसके पीछे क्या कारण है?
तोमन शिपाही

7

मैं यह करके यह काम करता हूं:

dpkg-reconfigure locales

अपना पसंदीदा स्थान चुनें, फिर चलाएं

pg_createcluster 9.5 main --start

(9.5 पोस्टग्रेज़ेल का मेरा संस्करण है)

/etc/init.d/postgresql start

और फिर यह काम करता है!

sudo su - postgres
psql

हाह, क्षमा करें, मुझे लगता है कि आदेशों ने इसे स्पष्ट कर दिया है। मेरे लिए, मैं इस समस्या को पूरा करता हूं जब मैं पोस्टग्रैक्कल को फिर से स्थापित करता हूं, तो मैं इसे फिर से टाइप करने की कोशिश service postgresql restart करता हूं, लेकिन यह कहता है कि मेरे पास कोई पोस्टग्रैसक्ल क्लस्टर नहीं था। फिर मैं इस तरह से मेरी मदद करने का तरीका
ढूंढता हूं

खैर तीन घंटे के गुग्लिंग के बाद आपने आखिरकार मेरा मुद्दा तय कर दिया। dpkg-reconfigure localesबहुत महत्वपूर्ण है।
डॉन मम्स

5

मुझे डेबियन स्क्वीज़ पर PostgreSQL 8.1 को संकलित करना पड़ा क्योंकि मैं प्रोजेक्ट ओपन का उपयोग कर रहा हूं, जो ओपनएसीएस पर आधारित है और पोस्टग्रेएसक्यूएल के अधिक हाल के संस्करणों पर नहीं चलेगा।

डिफ़ॉल्ट संकलित कॉन्फ़िगरेशन में डालता unix_socketहै /tmp, लेकिन प्रोजेक्ट ओपन, जो PostgreSQL पर निर्भर करता है, यह काम नहीं करेगा क्योंकि यह unix_socketएट के लिए दिखता है /var/run/postgresql

postgresql.confसॉकेट के स्थान को सेट करने के लिए एक सेटिंग है । मेरी समस्या यह थी कि या तो मैं इसके लिए काम कर सकता था /tmpऔर psqlकाम कर रहा था , लेकिन प्रोजेक्ट ओपन नहीं था, या मैं इसके लिए सेट कर सकता था /var/run/postgresqlऔर psqlकाम नहीं करेगा, लेकिन प्रोजेक्ट ओपन नहीं हुआ।

इस मुद्दे पर एक संकल्प पीटर के सुझाव के आधार पर सॉकेट सेट करने /var/run/postgresqlऔर फिर चलाने के लिए है psql:

psql -h /var/run/postgresql

यह स्थानीय अनुमतियों का उपयोग करके स्थानीय रूप से चलता है। एकमात्र दोष यह है कि यह केवल "psql" की तुलना में अधिक टाइपिंग है।

दूसरा सुझाव जो किसी ने दिया था वह था दो स्थानों के बीच एक प्रतीकात्मक लिंक बनाना। यह भी काम किया, लेकिन, रिबूट पर लिंक गायब हो गया। हो सकता है कि सिर्फ -एच तर्क का उपयोग करना आसान हो, हालांकि, मैंने पोस्टग्रेक्यूएल स्क्रिप्ट के भीतर से प्रतीकात्मक लिंक बनाया /etc/init.d। मैंने "स्टार्ट" सेक्शन में प्रतीकात्मक लिंक क्रिएट कमांड को रखा। बेशक, जब मैं एक स्टॉप जारी करता हूं और कमांड शुरू करता हूं, तो यह एक मौजूदा प्रतीकात्मक लिंक को फिर से बनाने की कोशिश करेगा, लेकिन चेतावनी संदेश के अलावा, इसमें कोई नुकसान नहीं है।

मेरे मामले में, के बजाय:

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

मेरे पास है

ln -s /var/run/postgresql/.s.PGSQL.5432 /tmp/.s.PGSQL.5432

और स्पष्ट रूप से /var/run/postgresql/.s.PGSQL.5432में unix_socket सेट किया है postgresql.conf


3

उपाय:

यह करो

export LC_ALL="en_US.UTF-8"

और इस। ( 9.3 मेरा वर्तमान PostgreSQL संस्करण है। अपना संस्करण लिखें!)

sudo pg_createcluster 9.3 main --start

woooow, यह केवल मेरी समस्या का समाधान था, धन्यवाद।
user3687723

3

यदि आपकी Postgres सेवा बिना किसी त्रुटि के चल रही है या चल रही है या Postgres सेवा को प्रारंभ करने में कोई त्रुटि नहीं है और फिर भी आपको उल्लेखित त्रुटि मिल रही है, तो इन चरणों का पालन करें

स्टेप 1: रनिंग pg_lsclustersआपके डिवाइस पर चलने वाले सभी पोस्टगर्ल क्लस्टर को सूचीबद्ध करेगा

उदाहरण के लिए:

Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

संभवत: आपके मामले में स्थिति नीचे होगी और सेवा को स्थगित कर देगी

चरण 2: pg_ctlcluster पुनः आरंभ करें

#format is pg_ctlcluster <version> <cluster> <action>
sudo pg_ctlcluster 9.6 main start

#restart postgres
sudo service postgres restart

चरण 3: चरण 2 विफल और त्रुटि फेंक दिया

अगर यह प्रक्रिया सफल नहीं होती है तो यह एक त्रुटि होगी। आप एरर लॉग ऑन देख सकते हैं/var/log/postgresql/postgresql-9.6-main.log

मेरी त्रुटि थी:

FATAL: could not access private key file "/etc/ssl/private/ssl-cert-snakeoil.key": Permission denied
Try adding `postgres` user to the group `ssl-cert`

चरण 4: पोस्टग्रेट्स के स्वामित्व की जांच करें

सुनिश्चित करें कि postgresइसका मालिक है/var/lib/postgresql/version_no/main

यदि नहीं, तो भागो

sudo chown postgres -R /var/lib/postgresql/9.6/main/

चरण 5: चेक पोस्टग्रैज उपयोगकर्ता ssl- सर्टिफिकेट यूजर ग्रुप से संबंधित है

यह पता चला कि मैंने गलती से पोस्टग्रेज उपयोगकर्ता को ssl-certसमूह से हटा दिया था । उपयोगकर्ता समूह समस्या को ठीक करने और अनुमतियों को ठीक करने के लिए नीचे दिया गया कोड चलाएँ

#set user to group back with
sudo gpasswd -a postgres ssl-cert

# Fix ownership and mode
sudo chown root:ssl-cert  /etc/ssl/private/ssl-cert-snakeoil.key
sudo chmod 740 /etc/ssl/private/ssl-cert-snakeoil.key

# now postgresql starts! (and install command doesn't fail anymore)
sudo service postgres restart

2

मेरे मामले में यह एक टाइपो के कारण था जिसे मैंने संपादित करते समय बनाया था /etc/postgresql/9.5/main/pg_hba.conf

मैं बदल गया:

# Database administrative login by Unix domain socket
local   all             postgres                                peer

सेवा:

# Database administrative login by Unix domain socket
local   all             postgres                                MD5

लेकिन कम MD5होना था md5:

# Database administrative login by Unix domain socket
local   all             postgres                                md5

1
यह वह उत्तर है जिसने इसे मेरे लिए निर्धारित किया है :) मैंने पहले के trustedबजाय मेरा बदल दिया था trust, और सेवा को फिर से शुरू नहीं किया, और यह केवल अगले दिन टूट गया जब मैं पहले से ही भूल गया कि मैं क्या बदल गया हूं
Phlippie Bosman

2

मैंने पाया कि पोस्टग्रैस को अनइंस्टाल करने की आवाज़ें अनइंस्टॉल होती हैं। यह मेरी समस्या को हल करने में मदद करता है:

  1. सर्वर शुरू करें:

    sudo systemctl start postgresql
    
  2. सुनिश्चित करें कि सर्वर बूट पर शुरू होता है:

    sudo systemctl enable postgresql
    

विस्तार से जानकारी DigitalOcean साइट पर यहां देखी जा सकती है


2

मैं अपने पोस्टग्रेज -9.5 सर्वर के साथ इस समस्या को हल करने में विफल रहा। शून्य प्रगति के 3 दिनों के बाद इस और अन्य साइटों पर फिक्स के हर क्रमांकन की कोशिश करने पर मैंने सर्वर को फिर से स्थापित करने और 5 दिनों के काम को खोने का फैसला किया। लेकिन, मैंने इस मुद्दे को नए उदाहरण पर दोहराया है। इससे पहले कि आप मेरे द्वारा किए गए भयावह दृष्टिकोण को लेने से पहले इसे ठीक करने के बारे में कुछ परिप्रेक्ष्य प्रदान करें।

सबसे पहले, postgresql.conf में सभी लॉगिंग सेटिंग्स को अक्षम करें। यह अनुभाग है:

# ERROR REPORTING AND LOGGING

उस अनुभाग में सब कुछ टिप्पणी करें। फिर सेवा को पुनरारंभ करें।

पुनः आरंभ करते समय, उपयोग /etc/init.d/postgresql start या restart मैंने इसे पुनः आरंभ करते समय सुपरयुसर मोड में होना सहायक पाया। मेरे पास उस ऑपरेशन के लिए एक एक्स-विंडो खुली थी। आप उस सुपरयूज़र मोड को स्थापित कर सकते हैं sudo -i

सत्यापित करें कि सर्वर को इस सरल कमांड के साथ पहुँचा जा सकता है: psql -l -U postgres

यदि वह इसे ठीक नहीं करता है, तो इस पर विचार करें:

मैं एक समाधान खोजने की कोशिश करते हुए कई फ़ोल्डरों पर स्वामित्व बदल रहा था। मुझे पता था कि मैं शायद उन फ़ोल्डर मालिकों को वापस करने की कोशिश कर रहा हूं और chmod2 और दिनों के लिए एस। यदि आपने पहले से ही उन फ़ोल्डर मालिकों के साथ गड़बड़ कर दी है और अपने सर्वर को पूरी तरह से शुद्ध नहीं करना चाहते हैं, तो सभी प्रभावित फ़ोल्डरों के लिए उन्हें मूल स्थिति में वापस लाने के लिए सेटिंग्स को ट्रैक करना शुरू करें। आप किसी अन्य सिस्टम पर एक समानांतर इंस्टॉल करने का प्रयास करना चाहते हैं और सभी फ़ोल्डरों के स्वामित्व और सेटिंग्स को व्यवस्थित रूप से जांच सकते हैं। थकाऊ, लेकिन आप अपने डेटा तक पहुंच प्राप्त करने में सक्षम हो सकते हैं।

एक बार जब आप पहुंच प्राप्त कर लेते हैं, # ERROR REPORTING AND LOGGINGतो postgresql.confफ़ाइल के अनुभाग में प्रत्येक प्रासंगिक पंक्ति को व्यवस्थित रूप से बदल दें । पुनः आरंभ करें और परीक्षण करें। मैंने पाया कि लॉग के लिए डिफ़ॉल्ट फ़ोल्डर विफलता का कारण बन रहा था। मैंने विशेष रूप से टिप्पणी की log_directory। डिफ़ॉल्ट फ़ोल्डर सिस्टम लॉग को तब ड्रॉप करता है /var/log/postgresql


1

संभवतः ऐसा हो सकता है क्योंकि आपने /var/lib/postgresql/9.3/mainफ़ोल्डर की अनुमति बदल दी है ।

नीचे दिए गए कमांड का उपयोग करके इसे 700 में बदलने का प्रयास करें:

sudo chmod 700 main

1

यह वास्तव में सवाल से संबंधित नहीं है क्योंकि मैं फ्लास्क का उपयोग कर रहा हूं, लेकिन यह सटीक त्रुटि थी जो मुझे मिल रही थी और विचारों को प्राप्त करने के लिए यह सबसे प्रासंगिक धागा था।

मेरा सेटअप: लिनक्स के लिए विंडोज सबसिस्टम, डॉकर-कंपोज डब्ल्यू / मेकफाइल डब्ल्यू / डॉकफाइल, फ्लास्क, पोस्टग्रैस्कल (स्कीमा टेबल से मिलकर का उपयोग करके)

पोस्टग्रेज से कनेक्ट करने के लिए, अपने कनेक्शन स्ट्रिंग को इस तरह सेट करें:

from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql+psycopg2://<user>:<password>@<container_name_in_docker-compose.yml>/<database_name>"

नोट: मुझे इस थ्रेड में किसी भी विधि का उपयोग करने के लिए कभी भी कोई आईपी (जैसे लोकलहोस्ट, 127.0.0.1) नहीं मिला। स्थानीय नाम के बजाय कंटेनर नाम का उपयोग करने के लिए आइडिया यहाँ से आया: https://github.com/docker-library/postgres/issues/297

अपना स्कीम सेट करें:

from sqlalchemy import MetaData
db = SQLAlchemy(app, metadata=MetaData(schema="<schema_name>"))

जब आप अपना सत्र सेट करते हैं, तो अपने कार्यों के लिए अपना खोज पथ सेट करें:

db.session.execute("SET search_path TO <schema_name>")

0

मुझे पीटर एसेन्ट्रौट ने ठीक वैसी ही समस्या बताई। netstat -nlp | grep 5432कमांड का उपयोग करते हुए , मैं देख सकता था कि सर्वर सॉकेट पर सुन रहा था /tmp/.s.PGSQL.5432

इसे ठीक करने के लिए, बस अपनी postgresql.confफ़ाइल को संपादित करें और निम्नलिखित लाइनें बदलें:

listen_addresses = '*'
unix_socket_directories = '/var/run/postgresql'

अब चलाएं service postgresql-9.4 restart(अपने संस्करण के साथ 9-4 बदलें), और दूरस्थ कनेक्शन अब काम कर रहे होंगे।

अब स्थानीय कनेक्शन की अनुमति देने के लिए, बस /var/run/postgresqlनिर्देशिका का एक प्रतीकात्मक लिंक बनाएं ।

ln -s /var/run/postgresql/.s.PGSQL.5432 /tmp/.s.PGSQL.5432

यह सुनिश्चित करने के लिए मत भूलें कि आपका pg_hba.confसही रूप से कॉन्फ़िगर किया गया है।


0

मेरे मामले में, मुझे सिर्फ इतना करना था:

sudo service postgresql restart

और फिर

sudo -u postgres psql

यह ठीक काम किया। आशा है ये मदद करेगा। चियर्स :)।



0

मुझे भी यही समस्या थी (उबंटू 15.10 (विली) पर)। sudo find / -name 'pg_hba.conf' -printया sudo find / -name 'postgresql.conf' -printखाली हो गया। इससे पहले ऐसा लगता था कि postgresql के कई उदाहरण स्थापित किए गए थे।

जब आप इंस्टॉल के रूप में देखते हैं, या निर्भरता की समस्याओं को सूचीबद्ध करते हुए आप समान हो सकते हैं

.../postgresql
.../postgresql-9.x 

और इसी तरह।

उस स्थिति में आपको sudo apt-get autoremoveप्रत्येक पैकेज 1 से 1 होना चाहिए ।

फिर इस पत्र का पालन करना और आप ठीक हो जाएंगे। खासकर जब यह महत्वपूर्ण आयात और स्रोत सूची में जोड़ने के लिए आता है FIRST

sudo apt-get update && sudo apt-get -y install python-software-properties && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

यदि विली का उपयोग नहीं कर रहे हैं, तो wilyअपने रिलीज के साथ यानी के आउटपुट के साथ बदलेंlsb_release -cs

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ wily-pgdg main" >> /etc/apt/sources.list.d/postgresql.list'
sudo apt-get update && sudo apt-get install postgresql-9.3 pgadmin3

और फिर आपको ठीक होना चाहिए और उपयोगकर्ताओं को कनेक्ट करने और बनाने में सक्षम होना चाहिए।

अपेक्षित उत्पादन:

Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data   /var/lib/postgresql/9.3/main
locale en_US.UTF-8
socket /var/run/postgresql
port   5432

मेरे समाधान का स्रोत (क्रेडिट)


0

एक ही समस्या होने पर मैंने कुछ अलग करने की कोशिश की:

मैन्युअल रूप से पोस्टग्रैस्कल डेमन शुरू करना मुझे मिला:

FATAL:  could not create shared memory segment ...
   To reduce the request size (currently 57237504 bytes), reduce PostgreSQL's
   shared memory usage, perhaps by reducing shared_buffers or max_connections.

तो क्या मैंने किया था के लिए एक कम सीमा निर्धारित करने के लिए था shared_buffersऔर max_connectionsमें postgresql.confऔर restartसेवा।

इससे समस्या ठीक हुई!

यहाँ पूर्ण त्रुटि लॉग है:

$ sudo service postgresql start
 * Starting PostgreSQL 9.1 database server                                                                                                                                                               * The PostgreSQL server failed to start. Please check the log output:
2013-06-26 15:05:11 CEST FATAL:  could not create shared memory segment: Invalid argument
2013-06-26 15:05:11 CEST DETAIL:  Failed system call was shmget(key=5432001, size=57237504, 03600).
2013-06-26 15:05:11 CEST HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 57237504 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
    If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
    The PostgreSQL documentation contains more information about shared memory configuration.

0

कई थकाने वाले प्रयासों के बाद, मुझे अन्य पदों के आधार पर समाधान मिला!

dpkg -l | grep postgres
apt-get --purge remove <package-founded-1> <package-founded-2>
whereis postgres
whereis postgresql
sudo rm -rf <paths-founded>
sudo userdel -f postgres

0

रन के अंदर पोस्टग्रैसिक निर्देशिका बनाएं और फिर निम्न कमांड चलाएँ।

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

0

बस / tix unix_socket_directories जोड़ें

postgresql.conf

unix_socket_directories = '/var/run/postgresql,/tmp'
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.