Postgres सर्वर से कनेक्ट नहीं हो सका


415

के बाद मैं काढ़ा अद्यतन और काढ़ा उन्नयन किया, मेरे पोस्टगर्ल्स कुछ समस्या हो गई। मैंने पोस्टग्रेज की स्थापना रद्द करने और फिर से स्थापित करने की कोशिश की, लेकिन यह भी काम नहीं किया।

यह त्रुटि संदेश है (मुझे भी यह त्रुटि संदेश मिला है जब मैं रेक डीबी करने की कोशिश करता हूं: माइग्रेट करता हूं)

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

मैं इसे कैसे सुलझाऊं?

मैक संस्करण: माउंटेन शेर।

होमब्रे संस्करण: 0.9.3

संस्करण पोस्ट: psql (PostgreSQL) 9.2.1

और यही मैंने किया।

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

अब, जब मैंने उपयोग किया $ psql, तब मैंने हॉब्रे को फिर से स्थापित किया , यह कोई त्रुटि संदेश नहीं दिखाता है।

लेकिन मैं rake db:migrateअपने रेल ऐप में चलता हूं, यह दिखाता है:

could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

अंत में मुझे इसका हल मिल गया।

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

यह समाधान थोड़ा मुश्किल है, लेकिन यह काम करता है। आशा है कि किसी के पास बेहतर समाधान होगा

अपडेट करें

यह मेरे लिए भी काम करता है।

rm /usr/local/var/postgres/postmaster.pid

3
मुझे आपकी वही समस्या हो रही है, लेकिन आपका समाधान मेरे काम नहीं आया। मुझे लगता है कि यह एक अनुमति समस्या है, लेकिन मुझे इसे ठीक करने के लिए फ़ाइल अनुमतियों का ज्ञान नहीं है।
अंजबरास

उन लोगों के लिए जो होमब्रे के माध्यम से पीजी स्थापित करते हैं और समस्या हो रही है, मुझे एक और जवाब मिला। बस pg रत्न को अनइंस्टॉल करें और Homebrew config के साथ पुनर्स्थापित करें। इसका जवाब stackoverflow.com/a/19609228/1072058 पर देखें ।
जिंकटाना

यहाँ भी इसी तरह का उत्तर है - stackoverflow.com/questions/13573204/…
वैलेस

1
पोस्टग्रेट्स शुरू करें।
ATW

4
अपने मौजूदा संस्करण को निम्न कमांड के साथ नए संस्करण में अपग्रेड करें brew postgresql-upgrade-database

जवाबों:


799

इसी तरह की समस्या थी; एक पिड फ़ाइल शुरू होने से पोस्टग्रे को रोक रही थी। ठीक करना:

rm /usr/local/var/postgres/postmaster.pid

और फिर सब ठीक है।


4
इस मुद्दे को अपडेट / रीस्टार्ट पर देखने के बाद इसने OSX Mavericks पर मेरे लिए काम किया।
इप्रोथ्रो

3
@jstafford धन्यवाद, मैंने पहले ही हल कर लिया है! :) समाधान होमब्यू के माध्यम से अनइंस्टॉल करना था और फिर तुरंत अपने कंप्यूटर को पुनरारंभ करना था, इसलिए फिर मैं पोस्टग्रेज को फिर से इंस्टॉल कर पाऊंगा। पुराने संस्करण पृष्ठभूमि में चल रहे थे, हर बार जब मैंने पोस्टग्रेट्स को पुन: स्थापित करने की कोशिश की तो फाइलें और संघर्ष पैदा हो गए।
betoharres

199
यह मेरे लिए मावेरिक्स पर काम नहीं करता था:rm: /usr/local/var/postgres/postmaster.pid: No such file or directory
sscirrus

16
इसने मेरे लिए काम किया, मिटा देने के बाद मुझे पोस्टग्रेट्स शुरू करना पड़ा। # pg_ctl -D / usr / स्थानीय / var / postgres -l /usr/local/var/postgres/server.log प्रारंभ
रिकार्डो कास्टेनेडा

12
मैं यह सुनिश्चित करने के लिए सर्वर लॉग को tail /usr/local/var/postgres/server.log
पूंछने

255

यह कभी-कभी पोस्टग्रेज अपग्रेड के साथ एक मुद्दा हो सकता है।

मेरे मामले में, यह 9.3 से 9.4 पर अपग्रेड करते समय हुआ।

Http://www.postgresql.org/docs/9.4/static/upmission.html देखें

ओएस एक्स / होमब्रे:

दौड़ने की कोशिश करें postgres -D /usr/local/var/postgres- यदि पोस्टग्रेज शुरू करने में विफल रहता है तो यह आपको बहुत अधिक वर्बोज़ आउटपुट देगा।

मेरे मामले में, rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8मेरे पुराने डेटाबेस को हटा दिया गया और फिर पोस्टग्रेजिस डीबी स्कीमा को फिर से संगठित किया गया।

उस समाधान के लिए https://github.com/Homebrew/homebrew/issues/35240 का धन्यवाद ।

मेरे डेटाबेस को पुनर्जीवित करने के बाद (साथ rake db:create) सब कुछ फिर से ठीक हो गया।


1
यह मेरे लिए एक होमब्रे के साथ काम करता है जो योसेमाइट पर पोस्टग्रेज स्थापित करता है।
cpursley

7
यदि रनिंग postgres -D /usr/local/var/postgresआपको बताता है कि डेटा निर्देशिका को पोस्टग्रेज के पुराने, असंगत संस्करण के साथ आरंभीकृत किया गया था, और आप अपने स्थानीय डेटा को खोना नहीं चाहते हैं, तो आप इस धागे
नाथन लॉन्ग

उपरोक्त कमांड चलने के बाद, मैं भागा: pg_ctl -D /usr/local/var/postgres -l logfile startऔर फिर मेरा सर्वर बैकग्राउंड में शुरू हुआ
टॉमीिक्स

5
brew services start postgresओएसएक्स पर उपयोग करेंpostgres -D /usr/local/var/postgres
माइक एंड्रियानोव

1
@ कॉफ़ेकेड मेरे पास एक ही मुद्दा था, और इसे यहां दिए गए निर्देशों के साथ तय किया: stackoverflow.com/questions/24379373/…
मीका वाल्टर

68

यहां मेरे लिए काम करने वाला समाधान मिला:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

आप मूल रूप से सर्वर को मैन्युअल रूप से शुरू करने के लिए निम्न कमांड चलाते हैं:

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

8
सभी उत्तरों में से यह एकमात्र ऐसा है जो मेरे लिए काम करता है। एल कैपिटन का उपयोग करना
पैट्रिक_870206

मैंने उस cmd के साथ कोशिश की है लेकिन मेरे लिए काम नहीं कर रहा है !!
हर्षित त्रिवेदी

41

यदि कागज़ के साथ पोस्टग्रेज़ की स्थापना और स्थापना रद्द करना आपके लिए काम नहीं करता है, तो अपने पोस्टग्रेज़ल इंस्टॉलेशन के लॉग देखें या:

postgres -D /usr/local/var/postgres

यदि आप इस तरह का आउटपुट देखते हैं:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

फिर निम्नलिखित प्रयास करें:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

फिर सर्वर शुरू करें:

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

स्रोत


2
जब कारण स्वीकार किए गए उत्तर से भिन्न होता है, तो काम करता है, अर्थात डेटाबेस फ़ाइलें वर्तमान संस्करण के साथ संगत नहीं हैं। चूँकि वास्तव में यही मेरी समस्या रही है, इसलिए मैं आगे बढ़ता हूँ।
फॉक शुज़ेटेनमिस्टर

1
यह आदेश मेरे लिए काम करता है।
Ccr

Mojave 10.14.6 के लिए काम करता है
Sgryt87

34

Yosemite पर, यदि pid फाइल शुरू होने से Postgres को रोक रही है और आपके पास launchctlडेटाबेस डेमोंस को लोड करने के लिए डेमॉन कोशिश कर रहा है (और असफल हो रहा है), तो आपको प्लास्ट फाइल को अनलोड करना होगा:

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

फिर pid फाइल को हटा दें

$ rm /usr/local/var/postgres/postmaster.pid

फिर launchctlडेमॉन को फिर से लोड करें

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

इसे पढ़ने और Postgres.app का उपयोग करने वाले किसी व्यक्ति के लिए, आपको host: localhostअपने database.yml की आवश्यकता हो सकती है । http://postgresapp.com/documentation#toc_3


ऐसा करने से कनेक्शन को सॉकेट से टीसीपी कनेक्शन में बदल जाता है जिसके नकारात्मक प्रभाव हो सकते हैं। देखें stackoverflow.com/questions/6770649/…
ब्रेट बिम

1
हम्म, वास्तव में, अगर आप नीचा दिखाते हैं ... शायद ऐसा क्यों न कहें? meta.stackoverflow.com/questions/252297/… या शायद ऐसा क्यों कहें, लेकिन पहले अनाम हो जाएं ताकि आप गुमनाम रहें
डेविड विनीकी

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

लिंक कहीं भी विशिष्ट नहीं लगता है (और अतीत में "लोकलहोस्ट" की खोज करने का कोई परिणाम नहीं है) लेकिन इसने मेरे लिए खोज के एक घंटे के बाद ही मुद्दा तय कर दिया।
साठ4

25

डेटाबेस को अपग्रेड करना मेरे लिए काम करता है

brew postgresql-upgrade-database


👍✅⭐️🙏Thank you Tomer! इसने मेरे लिए 6/2/20 का उन्नयन किया जो कि macOS Mojave 10.14.6 पर 9.4 से 12 तक अपग्रेड किया गया
Rob Bednark


17

जांचें कि सॉकेट फ़ाइल मौजूद है।

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

यदि यह तब unix_socket_directory परिवर्तन के लिए अपने postgresql.conf की जाँच नहीं करता है।

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
यह मेरी कंप्यूटर प्रतिक्रिया है। $ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
गैरी लाई

29
अंत में मुझे इसका हल मिल गया। $ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/यह समाधान थोड़ा मुश्किल है, लेकिन यह काम करता है। आशा है कि किसी के पास एक बेहतर समाधान है
गैरी लाइ

अच्छी नौकरी @GaryLai। बहुत अजीब बात है कि मुझे अपने होमब्रेव पोस्टग्रैसक्ल के साथ ऐसा नहीं करना पड़ा
jrwren

2
इससे कुछ लोगों को मदद मिल सकती है: github.com/mxcl/homebrew/issues/14527
AdamT

14

समस्या को एक दुर्घटनाग्रस्त प्रक्रिया के लिए भी जिम्मेदार ठहराया जा सकता है जिसने पोस्टमास्टर को छोड़ दिया है। फ़ाइल को पीछे छोड़ दिया। मैं यह करता हूं और काम करता हूं:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

समस्या यह है कि पहले से ही पोर्ट 5432 पर एक रनिंग सेवा है और हम इस पोर्ट के माध्यम से psql सॉकेट कनेक्शन स्थापित नहीं कर सकते हैं।

मैंने सॉकेट फ़ाइल को हटा दिया

rm -rf /tmp/.s.PGSQL.5432/

फिर मैंने सेवाओं को पोस्टग्रेज किया

postgres -D /usr/local/var/postgres

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


8

इसके आस-पास सबसे मूर्ख प्रमाण तरीका है

brew reinstall postgresql

यह आपके उपयोगकर्ता की अनुमति आदि को बरकरार रखेगा और सब कुछ नया पर रीसेट हो जाएगा। हर समय काम करता है!


एक विजेता की तरह काम किया !!!! यह सब जरूरत थी।
आकाश के

7

Postresql या database.yml config settings बदलना, $ PATH बदलना, या सिमिलिंक बनाना मेरे लिए सभी अनावश्यक थे। मुझे बस इतना करना चाहिए था gem uninstall pgऔर फिर bundle(या gem install pg)।

मुद्दा यह था कि होमब्रेव पोस्टग्रेट्स से पहले पीजी रत्न स्थापित किया गया था, इसलिए मैकओएस के साथ आने वाले पोस्टग्रेज के संस्करण से सेटिंग्स उठा रहा था। इसे पुनः स्थापित करना (और इस तरह मूल विस्तार का पुनर्निर्माण) ने समस्या को ठीक कर दिया।


केवल धन्यवाद कहना था। मैंने अभी MacOS पर PostgresApp को अपग्रेड किया है और हालांकि मैं psql का उपयोग करके कनेक्ट कर सकता हूं, मैं रेल के माध्यम से कनेक्ट नहीं कर सका। स्थापना रद्द करने और पीसी रत्न को पुनर्स्थापित करने के लिए सिर्फ टिकट था! :)
क्रेग १४१०

7

यह मेरे साथ तब हुआ जब मैं 9.3.4 से 9.5 पर अपग्रेड हुआ क्योंकि डेटाबेस अपग्रेड किए बिना असंगत हैं।

मैंने निम्नानुसार pg_upgrad का उपयोग किया:

पोस्टग्रेज बंद करो

$ brew services stop postgresql

डेटाबेस अपग्रेड करें:

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

पुराने डेटाबेस को संग्रहीत करें:

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

फिर से शुरू करें:

 $ brew services start postgresql

अपडेट किए गए रत्न (रेल / सक्रिय रिकॉर्ड के लिए):

 $ gem uninstall pg
 $ gem uninstall activerecord-postgresql-adapter
 $ bundle install

ये निर्देश भी collectiveidea.com/blog/archives/2016/01/08/… पर हैं , और अभी भी मेरे लिए काम करते हैं जब 9.4.0 से 9.6.3 तक अपग्रेड करते हैं। मुझे मैन्युअल रूप से .pid फ़ाइल में कुछ भी करने की आवश्यकता नहीं थी।
Jan Hettich

7

यह वास्तव में आप क्या करने वाले हैं:

आपको इसके बजाय /usr/local/var/postgres/postmaster.pid पर देखना चाहिए

और फिर फ़ाइल की पहली पंक्ति को देखें - यह खराब पीआईडी ​​है

Daud

ps aux | grep <PID>

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

ps aux | grep 12345

फिर करो

kill <PID>

उदाहरण के लिए

kill 12345

यह मानते हुए कि यह अभी भी चल रहा है

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

स्वीकार किए गए उत्तर को मत सुनो यह बुरा है और आपके डेटा को दूषित करेगा !!!


धन्यवाद, यह मेरे लिए काम किया। स्वीकृत उत्तर में पोस्टमास्टर को हटा देना वास्तव में पर्याप्त नहीं था।
अबे पेट्रिलो

4

Psql विकल्प

-h hostname --host = hostname

: मशीन के होस्ट नाम को निर्दिष्ट करता है जिस पर सर्वर चल रहा है। यदि मान स्लैश से शुरू होता है, तो इसका उपयोग यूनिक्स-डोमेन सॉकेट के लिए निर्देशिका के रूप में किया जाता है।

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

-Ql विकल्प के साथ psql चलाएँ

$ psql -p 5433 -h /var/run/postgresql

सॉफ्ट लिंक बनाने की आवश्यकता नहीं है


4

इस मुद्दे पर MacOS Sierra पर भी आया था और जब हमने ऊपर वर्णित के रूप में pg_ctl चलाया था, तब निम्न त्रुटि हुई थी pg_ctl: no database directory specified and environment variable PGDATA unset। इसलिए हमने यहां उन चरणों का पालन ​​किया, जिनसे हमारी समस्या हल हुई, अर्थात्:

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

यदि होमब्रे का उपयोग करके पोस्टग्रेज स्थापित किया गया था, तो आप इसे चलाकर ठीक कर सकते हैं:

brew link postgres


4

यदि आप अपने सिस्टम को psql को छोड़ने के बिना बंद कर देते हैं, तो पोस्टग्रेज ने कुछ फ़ाइलों को नहीं हटाया होगा।

मुझे फ़ाइल पोस्टमास्टर नहीं मिली। हमें लोकेशन usr / local / var / postgres में देखें

इसलिए मैंने नीचे किया है:

काढ़ा सेवाएं पोस्टग्रैसेकल शुरू करें

उपरोक्त कमांड आपको पोस्टग्रेट्स शुरू करने देना चाहिए


3

जब कोई अन्य प्रक्रिया उन तक पहुँच रही थी, तो मैं उसे पुनर्स्थापित / ड्रॉप करने / बनाने का प्रयास करने के बाद इस समस्या में भाग गया। MacOSX / Homebrew फिक्स था:

  1. पास अन्य सभी तक पहुँचने प्रक्रियाओं rails server, rails console, guard, आदि ...
  2. लोड / अनलोड आदेशों में पाया का उपयोग कर brew info postgres
  3. पहले से पुनर्स्थापित / ड्रॉप / बनाएं

3

FWIW आज मेरे साथ ऐसा हुआ, लेकिन जो हुआ वह यह था कि मैं उस समय उबंटू अपडेट चला रहा था, जो संभवतः पोस्टग्रैज को अपडेट कर रहे थे। एक बार अपडेट पूरा होने के बाद, मैं एक अड़चन के बिना कनेक्ट करने में सक्षम था।

पूर्णता के लिए, मैं डेटाबेस से एक रेल कंसोल से रिकॉर्ड प्राप्त करने की कोशिश कर रहा था:

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: 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"?

3

ऐसा लगता है कि आपका psql नहीं चलता है। कनेक्ट करने से पहले आपको इसे चलाना चाहिए। आप केवल Mac OS के लिए Postgres.app का उपयोग कर सकते हैं। (इस ऐप को डाउनलोड करें और इंस्टॉल करें http://postgresapp.com ) ऐप खोलें, और आपके पास पोस्टग्रेज़क्यूएल सर्वर तैयार है और नए कनेक्शन की प्रतीक्षा कर रहा है। एप्लिकेशन को बंद करें, और सर्वर बंद हो जाता है। आप इस जानकारी को यहां http://www.postgresql.org/download/macosx/ पर भी देख सकते हैं । आशा है कि यह आपकी मदद करेगा।


1
हालांकि यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक-केवल उत्तर अमान्य हो सकते हैं यदि लिंक किए गए पृष्ठ बदल जाते हैं।
Kmeixner

सवाल विशेष रूप से एक होमब्रेव इंस्टॉलेशन का उल्लेख कर रहा था न कि पोस्टग्रैज.ऐप इंस्टाल का। हालांकि यह उत्तर सहायक है, यह प्रश्न का उत्तर नहीं देता है। यह कहना पसंद होगा "इसके बजाय MySQL का उपयोग करें।"
ब्रायन प्रिय

3

ऐसा इसलिए है क्योंकि पिछला सर्वर अभी भी चल रहा है, सब कुछ बंद करने की कोशिश करें और अपने आवेदन को फिर से चलाएं।


3

उन लोगों के लिए जो इस कमांड का उपयोग करते हैं और काम नहीं करते हैं या फ़ाइल नहीं है और रूबी ऑन रेल का उपयोग कर रहे हैं

rm /usr/local/var/postgres/postmaster.pid

या कोई अन्य कमांड और बस असफल रहते हैं।

मैंने इस समस्या का हल ब्रू के साथ अनइंस्टॉल कर दिया। मुझे 2 बार काढ़ा के साथ अनइंस्टॉल करना पड़ा, क्योंकि पहले अनइंस्टॉल में पोस्टग्रैक्स्ल का एक और संस्करण रहेगा, दूसरी स्थापना के साथ प्रक्रिया पूरी हो जाएगी।

काढ़ा के साथ postgresql स्थापित करें

फिर प्रोजेक्ट के डेटा बेस को ड्रॉप, क्रिएट और माइग्रेट करें

(Postgresql सर्वर शुरू करने के लिए मत भूलना)


3

मुझे एक ही मुद्दा मिला क्योंकि मैं कोड में एक गलत Postgres के उपयोगकर्ता नाम का उपयोग कर रहा हूं। मैंने पोस्टग्रेज में psql -d postgresप्रवेश \duकिया और भूमिका नाम लेने और पोस्टग्रेज के उपयोगकर्ता नाम को सही करने के लिए प्रवेश किया।

इसलिए जब आप लोग इस मुद्दे का सामना करते हैं, तो आप लोगों को यह सुनिश्चित करने की आवश्यकता होती है कि आप सही पोस्टग्रेज उपयोगकर्ता नाम, पासवर्ड, होस्टनाम और डेटाबेस का उपयोग कर रहे हैं ...

आशा है कि यह किसी की मदद करेगा


3

Changed क्या आपने हाल ही में pg_hba.conf को बदला है? अगर आपने सिर्फ किसी टाइपो के लिए जाँच की है:

"स्थानीय" केवल यूनिक्स डोमेन सॉकेट कनेक्शन के लिए है

स्थानीय सभी पासवर्ड

IPv4 स्थानीय कनेक्शन:

सभी 127.0.0.1/32 पासवर्ड की मेजबानी करें

IPv6 स्थानीय कनेक्शन:

सभी को होस्ट करें :: 1/128 पासवर्ड

कभी-कभी एक साधारण गलती हमें सिरदर्द दे सकती है। मुझे उम्मीद है कि यह मदद और खेद है अगर मेरी अंग्रेजी बिल्कुल भी अच्छी नहीं है।


3

यह तब होता है जब पोस्टग्रेज सर्वर चालू नहीं होता है। मैक पर Homebrew के माध्यम से पोस्टग्रेज को ठीक से स्थापित करने के लिए कदम:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [यह दी गई डायरेक्टरी को डेटाबेस डायरेक्टरी के रूप में उपयोग करने के लिए आरंभ करता है। आम तौर पर डेटाबेस भंडारण के लिए उपयोगकर्ता निर्देशिका का उपयोग करने की सलाह नहीं दी जाती है। Initdb और समान कमांड जोड़ने के लिए sudoers फ़ाइल संपादित करें और फिर / usr / स्थानीय / var / पोस्टग्रैट्स पर initdb चलाएं]

  3. pg_ctl -D /Users/<username>/db -l logfile start [चरण 2 के साथ सफलता मिलने के बाद यह चरण 3 को चलाने के लिए संकेत देगा। यह कमांड मैन्युअल रूप से सर्वर शुरू करता है।]


2

मुझे भी यही त्रुटि मिली। पता चला कि पोस्टग्रैज बस बिल्कुल नहीं चल रहा था (यह आमतौर पर हमेशा पृष्ठभूमि में चल रहा है, लेकिन जो भी कारण आज नहीं था)।

यदि यह स्थिति है, तो postgresअपने प्रोजेक्ट डायरेक्टरी की कमांड लाइन में टाइप करें


2

आगे और पीछे की जबरदस्त मात्रा के बाद, यह वास्तव में pgमेरे द्वारा उपयोग किए जा रहे मणि संस्करण पर आ गया। Mavericks पर, pgसंस्करण 0.15.15432 पोर्ट से कनेक्ट नहीं होगा लेकिन संस्करण 0.17.1ठीक काम करता है - बहुत अजीब।

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