क्या सर्वर होस्ट "लोकलहोस्ट" (# 1) पर चल रहा है और पोर्ट 5432 पर टीसीपी / आईपी कनेक्शन स्वीकार कर रहा है?


86

कुछ भी करने से पहले, कृपया ध्यान दें कि मैंने पूरे वेब पर स्टैक ओवरफ्लो और लेखों पर कई समान प्रश्न पाए हैं, लेकिन उनमें से किसी ने भी इस मुद्दे को ठीक करने में मेरी मदद नहीं की:

अब, यहाँ मुद्दा है:

  • मेरे पास एक Rails ऐप है जो आकर्षण की तरह काम करता है।
  • अपने सहयोगी के साथ, हम GitHub का उपयोग एक साथ काम करने के लिए करते हैं।
  • हमारी एक masterऔर एक mvpशाखाएं हैं।
  • मैंने हाल ही में gitहोमब्रेव (मैक) के साथ अपने संस्करण को अपडेट किया ।
  • हम अपने ऐप को स्थानीय रूप से शुरू करने के लिए फोरमैन का उपयोग करते हैं।

अब, जब मैं स्थानीय रूप से ऐप लॉन्च करने की कोशिश करता हूं, तो मुझे निम्नलिखित त्रुटि मिलती है:

PG::ConnectionBad at /
could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
could not connect to server: Connection refused
    Is the server running on host "localhost" (127.0.0.1) and accepting
    TCP/IP connections on port 5432?

मैंने कई बार अपने कंप्यूटरों को रिबूट करने की कोशिश की।

मैंने इसकी सामग्री भी जांची /usr/local/var/postgres:

PG_VERSION      pg_dynshmem     pg_multixact    pg_snapshots    pg_tblspc       postgresql.conf
base            pg_hba.conf     pg_notify       pg_stat         pg_twophase     postmaster.opts
global          pg_ident.conf   pg_replslot     pg_stat_tmp     pg_xlog         server.log
pg_clog         pg_logical      pg_serial       pg_subtrans     postgresql.auto.conf

जैसा कि आप देख सकते हैं, वहाँ कोई postmaster.pidफ़ाइल नहीं है ।

किसी भी विचार मैं इसे कैसे ठीक कर सकता हूं?


क्या आप सामग्री के साथ प्रश्न को अपडेट कर सकते हैं postgresql.conf?
पावन

जवाबों:


57

आप सबसे अधिक संभावना है कि बैटरी खत्म हो गई हो और आपका पोस्टग्रेसल सर्वर सही ढंग से बंद नहीं हुआ हो।

सबसे आसान काम है आधिकारिक पोस्टग्रैस्कल ऐप डाउनलोड करना और उसे लॉन्च करना: यह सर्वर को शुरू करने के लिए मजबूर करेगा ( http://postgresapp.com/ )


2
आपके उत्तर के लिए धन्यवाद। मैंने सिर्फ ऐप डाउनलोड किया और इसे लॉन्च किया। यदि मैंने अपना सर्वर लॉन्च करने से पहले इसे बंद कर दिया है, तो मुझे अभी भी वही त्रुटि मिलती है। अगर मैं इसे बंद नहीं करता हूं, तो मुझे एक त्रुटि संदेश मिलता है जिसमें कहा गया है कि मेरा "डेटाबेस मौजूद नहीं है"। क्या यह संबंधित हो सकता है?
थिबॉड क्लेमेंट

यदि आपका डेटाबेस मौजूद नहीं है, तो आपको रेक db: create करना चाहिए। लेकिन यह सबसे अधिक संभावना से संबंधित नहीं है ... क्या आपने केवल एक रेपो या ऐसा कुछ कांटा किया था? 'रेल्स एस' का उपयोग करके अपने सर्वर को लॉन्च करने से पहले आपको इसे बंद नहीं करना चाहिए !! एप्लिकेशन को उस पूरे समय पर चलना होगा जब आप अपनी साइट को किसी लोकलहोस्ट पर एक्सेस करना चाहते हैं
ग्राहम स्लीक

ठीक। नहीं, मैंने रेपो को कांटा नहीं, यह वही रेपो है जिसके साथ मैं काम कर रहा था। लेकिन मैं भाग गया git fetch, शायद यह समस्या है।
थिबॉड क्लेमेंट

git लाने के लिए डेटाबेस को हटाना नहीं चाहिए। यदि आप रेक db चलाते हैं तो क्या हो रहा है: बनाएं?
ग्राहम स्लीक

1
"बैटरी खत्म हो गई" ... यह वास्तव में क्या हुआ है! : -ओ
सागर रंगलानी

135

दौड़ें postgres -D /usr/local/var/postgresऔर आपको कुछ इस तरह देखना चाहिए:

 FATAL:  lock file "postmaster.pid" already exists
 HINT:   Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?

फिर kill -9 PIDHINT में चलाएं

और आपको जाना अच्छा होना चाहिए।


4
मेरे मामले के लिए सबसे अच्छा समाधान, जो यह है कि मेरी मशीन अप्रत्याशित रूप से बंद हो गई और सेवा को पुनरारंभ करने से समस्या हल नहीं हुई - धन्यवाद!
पॉल न्यूलिन

3
यदि आप होमब्रे का उपयोग कर रहे हैं, brew services start postgresया brew services restart postgresचाल कर सकते हैं
मिरर 318

1
धन्यवाद! मैं इस मुद्दे के साथ दूसरी बार भाग गया, आप कैसे समझ गए कि इसका समाधान होगा?
१३:१३ बजे क़ासिमालबाकली

1
Linux ubuntu dist के लिए कोई समकक्ष समाधान?
तैतिल .00

1
इस मुद्दे को हल करने की कोशिश के घंटों के बाद 2019 में मेरे लिए यह काम किया।
मिवंगी कबीरु

54

सबसे अधिक संभावना है कि आपका सिस्टम अप्रत्याशित रूप से बंद हो जाए

प्रयत्न

postgres -D /usr/local/var/postgres

आप देख सकते हैं

FATAL:  lock file "postmaster.pid" already exists
HINT:  Is another postmaster (PID 449) running in data directory "/usr/local/var/postgres"?

फिर कोशिश करो

kill -9 PID

उदाहरण

kill -9 419

और यह सामान्य रूप से पोस्टग्रेज शुरू करना चाहिए


हां मेरा सिस्टम अप्रत्याशित रूप से बंद हो गया और इससे मेरी समस्या हल हो गई। धन्यवाद।
विकसित

24

Postgresql सर्वर नीचे हो सकता है और समाधान चलाने जितना आसान हो सकता है:

sudo service postgresql start

जो मेरे लिए मुद्दा तय किया।


16

मैं अपने रुबी के साथ लगभग उसी त्रुटि के रूप में था जो कि पोस्टग्रेजेक (मैक) पर चलने वाले रेल एप्लिकेशन पर था। यह मेरे लिए काम किया:

brew services restart postgresql

14

यह मेरे मामले में काम आया:

brew uninstall postgresql
rm -fr /usr/local/var/postgres/
brew install postgresql

14

यह पोस्टग्रेज के लिए बनाई गई pid फाइल के कारण हो सकता है जिसे अप्रत्याशित बंद के कारण हटाया नहीं गया है। इसे ठीक करने के लिए, इस पीआईडी ​​फ़ाइल को हटा दें।

  1. डेटा निर्देशिका को पोस्टग्रेट करें। मैक पर होमब्रे का उपयोग करते हुए यह है /usr/local/var/postgres/, अन्य सिस्टम यह हो सकता है/usr/var/postgres/

  2. फ़ाइल को चलाकर निकालें:

    rm postmaster.pid
    
  3. पुन: प्रारंभ करें। मैक पर, चलाएं:

    brew services restart postgresql
    

धन्यवाद! व्यक्तिगत रूप से मुझे इस तरह से निकालना था: rm / Users / <username> / Library / Application \ Support / Postgres / var- <versionId> /postmaster.pid
निकोलस Bodin-Ripert

3

मैंने इस आदेश के माध्यम से समस्या हल की

pg_ctl -D /usr/local/var/postgres start

कई बार, आपको यह त्रुटि मिल सकती है

pg_ctl: another server might be running; trying to start server anyway

इसलिए, निम्न कमांड को चलाने का प्रयास करें और फिर ऊपर दिए गए पहले कमांड को चलाएं।

pg_ctl -D /usr/local/var/postgres stop

2

यदि आप लिनक्स पर Postgresql को पुनरारंभ करना चाहते हैं, तो आपको निम्न कमांड का उपयोग करना होगा।

/etc/init.d/postgresql restart


1

यह मेरे लिए काम किया: भागो

sudo lsof -i :<port_number>

इसके बाद यह पीआईडी ​​प्रदर्शित करेगा जो वर्तमान में प्रक्रिया से जुड़ा हुआ है।

इसके बाद दौड़ें sudo kill -9 <PID>

अगर वह काम नहीं करता है, तो उपयोगकर्ता द्वारा पेश किए गए समाधान की कोशिश करें, यह निश्चित रूप से काम करेगा!


1

पहले मैंने कोशिश की

lsof -wni tcp: 5432 लेकिन यह कोई PID नंबर नहीं दिखाता है।

दूसरी मैंने कोशिश की

Postgres -D / usr / स्थानीय / var / postgres और यह दिखाया कि सर्वर सुन रहा है।

इसलिए मैंने अभी सभी पोर्ट्स को वापस लाने के लिए अपने मैक को रीस्टार्ट किया और यह मेरे लिए काम कर गया।


1

के लिए डोकर उपयोगकर्ताओं: मेरे मामले में यह अत्यधिक डोकर छवि का आकार की वजह से किया गया था। आप अप्रयुक्त डेटा को pruneकमांड का उपयोग करके निकाल सकते हैं :

docker system prune --all --force --volumes

चेतावनी: मैनुअल के अनुसार ( docker system prune --help):

यह हटा देगा:

  • सभी कंटेनरों को रोक दिया
  • सभी नेटवर्क कम से कम एक कंटेनर द्वारा उपयोग नहीं किए जाते हैं
  • सभी झूलने वाली छवियां
  • सभी झूलने बिल्ड कैश

1

मेरे मामले में

  1. मैंने postgresql.conf फ़ाइल में पोर्ट बदल दिया है
  2. और पोस्टग्रेजिक सेवाओं को फिर से शुरू करें

रन => service.msc => पुनः आरंभ करें

  1. अब पुनः प्रयास करें

0

मैं अक्सर विंडोज़ पर इस समस्या का सामना करता हूं, जिस तरह से मैंने समस्या को हल किया है वह है - PostgreSQL डाटाबेस सर्वर 8.3 पर क्लिक करें - दूसरा टैब "लॉग इन" पर क्लिक करें - पहली पंक्ति "स्थानीय सिस्टम खाता" चुनें।


0

यदि आप अपने PostgreSQL ऐप को बंद करते हैं तो यह भी वही त्रुटि देता है। आपको बस इसे फिर से शुरू करने की आवश्यकता है। (पोस्टग्रेएसक्यूएल 11)


0

मुझे एक ही मुद्दे का सामना करना पड़ा है और मैं पोस्टग्रैक्स्ल सर्वर को शुरू करने में असमर्थ था और पासवर्ड देने के बाद भी अपने डीबी तक पहुंचने में असमर्थ था, और मैं सभी संभव तरीके से कर रहा हूं।

इस समाधान ने मेरे लिए काम किया,

Ubuntu उपयोगकर्ताओं के लिए: कमांड लाइन के माध्यम से, निम्न कमांड टाइप करें:

1. सेवा --status-all (जो सभी सेवाओं और उनकी स्थिति की सूची देता है। जहाँ "+" रनिंग को संदर्भित करता है और "-" संदर्भित करता है कि सेवा अब नहीं चल रही है)

Postgresql स्थिति के लिए जाँच करें, अगर इसकी "-" तो निम्न कमांड टाइप करें

2.systemctl postgresql शुरू (सर्वर फिर से शुरू होता है)

ब्राउज़र में पोस्टग्रैस्कल पृष्ठ को ताज़ा करें, और यह काम करता है

विंडोज उपयोगकर्ताओं के लिए:

सेवाओं के लिए खोजें, जहां हम सेवाओं की सूची देख सकते हैं और पोस्टग्रैस्कल पर राइट क्लिक करें, प्रारंभ पर क्लिक करें और सर्वर पूरी तरह से ठीक काम करता है।


0

चरण 1:

cd /etc/postgresql/12/main/

नाम की खुली फाइल postgresql.conf

sudo nano postgresql.conf

इस लाइन को उस फाइल में जोड़ें

listen_addresses = '*'

फिर नाम की खुली फ़ाइल pg_hba.conf

sudo nano pg_hba.conf

और इस लाइन को उस फाइल में जोड़ें

host  all  all 0.0.0.0/0 md5

यह एक एन्क्रिप्टेड पासवर्ड के साथ सभी उपयोगकर्ताओं के लिए सभी डेटाबेस तक पहुंच की अनुमति देता है

अपने सर्वर को पुनरारंभ करें

sudo /etc/init.d/postgresql restart

0

जब मैं अपने Django एप्लिकेशन को PostgreSQL से कनेक्ट करने का प्रयास कर रहा था, तो मुझे इसी तरह की समस्या का सामना करना पड़ा डेटाबेस ।

मैंने अपने Dockerfileनिर्देश के साथ Django परियोजना को सेटअप करने के लिए पोस्टग्रेक्यूएल को स्थापित करने और मेरे अंदर Django सर्वर चलाने के निर्देशों के साथ लिखा थाdocker-compose.yml

मैंने अपने में दो सेवाओं को परिभाषित किया docker-compose-yml

services:
  postgres:
    image: "postgres:latest"
    environment:
      - POSTGRES_DB=abc
      - POSTGRES_USER=abc
      - POSTGRES_PASSWORD=abc
    volumes:
      - pg_data:/var/lib/postgresql/data/
  django:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8004
    volumes:
      - .:/app
    ports:
      - 8004:8004
    depends_on:
      - postgres 

दुर्भाग्य से जब भी मैं दौड़ता था docker-compose up तो उसी तरह की गलती करता था। पॉप अप करने के लिए इस्तेमाल किया।

और इसी तरह मेरे डेटाबेस को Django में परिभाषित किया गया था settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'abc',
        'USER': 'abc',
        'PASSWORD': 'abc',
        'HOST': '127.0.0.1',
        'PORT': '5432',
        'OPTIONS': {
            'client_encoding': 'UTF8',
        },
    }
} 

इसलिए, अंत में मैंने docker-compose नेटवर्किंग का उपयोग किया, जिसका अर्थ है कि अगर मैं hostअपने डेटाबेस में परिवर्तन करता हूं postgres, जिसे एक सेवा के रूप में परिभाषित किया गया है docker-compose.yml, तो यह चमत्कार कर देगा।

इसलिए, रिप्लेसमेंट 'HOST': '127.0.0.1' => 'HOST': 'postgres' ने मेरे लिए चमत्कार किया।

प्रतिस्थापन के बाद यह है कि आपका डेटाबेस कॉन्फ़िगरेशन कैसा settings.pyदिखेगा।

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'abc',
            'USER': 'abc',
            'PASSWORD': 'abc',
            'HOST': 'postgres',
            'PORT': '5432',
            'OPTIONS': {
                'client_encoding': 'UTF8',
            },
        }
    } 

0

मेरे मामले में मैं डेटाबेस को पोस्टग्रेज (मेरे उत्पादन पर) से वापस sqlite3 में बदलना भूल गया था जिसे मैं विकास के लिए उपयोग कर रहा था।

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