macos - पोस्टग्रेर्स सर्वर से कनेक्ट नहीं हो सका




postgresql homebrew (20)

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

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

$ 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 उपयोग करता हूं, तो मैं howbrew को पुनर्स्थापित करने के बाद, यह कोई त्रुटि संदेश नहीं दिखाता है।

लेकिन मैं rake db:migrate चलाता हूं rake db:migrate मेरे रेल ऐप में 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

¿क्या आपने हाल ही में pg_hba.conf बदल दिया है? यदि आपने अभी किसी भी टाइपो की जांच की है:

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

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

आईपीवी 4 स्थानीय कनेक्शन:

सभी 127.0.0.1/32 पासवर्ड होस्ट करें

आईपीवी 6 स्थानीय कनेक्शन:

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

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


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

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


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

brew reinstall postgresql

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


इसे पढ़ने और पोस्टग्रेस.एप का उपयोग करने वाले किसी भी व्यक्ति के लिए, आपको host: localhost आवश्यकता हो सकती है host: localhost आपके डेटाबेस में host: localhosthttp://postgresapp.com/documentation#toc_3


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

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

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


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

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

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"?

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


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

$ 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

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


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

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

उम्मीद है कि यह किसी की मदद करेगा


मेरे लिए डेटाबेस काम का उन्नयन

brew postgresql-upgrade-database


मेरे लिए यह एक अपाचे अपग्रेड था जिसने समस्या का कारण बना दिया। मैं अभी भी कंसोल में psql चला सकता हूं या डीडी को सीधे केडीएफएल से कॉल कर सकता हूं। इसके अलावा यह कनेक्शन स्ट्रिंग में "होस्ट = localhost" जोड़ने के लिए काम किया।

लेकिन वास्तविक समस्या यह थी कि अपाचे निजी टीएमपी में बदल गया था।

समाधान: अद्यतन /usr/lib/systemd/system/apache2.service और PrivateTmp = true को PrivateTmp = false में बदलें।

मैं ओपनस्यूज ओएस पर काम कर रहा हूं, लेकिन मुझे लगता है कि मैक पर कुछ ऐसा ही हो सकता है।


मैंने बिटमैनी स्टैक का इस्तेमाल किया और गैर रूट उपयोगकर्ता psql के रूप में स्थापित किया। Psql का उपयोग करने पर मुझे उल्लिखित त्रुटि मिली।

बाहर निकलता है, psql के 2 संस्करण हैं

  1. एक रूट स्तर psql लिनक्स distro में preackaged। यह इंगित करता है / usr / bin / psql
  2. बिटनामी स्टैक द्वारा स्थापित एक गैर-रूट स्तर psql। यह / bitnami / postgresql / postgresql / bin / psql को इंगित करता है

आप psql के उपनाम को बदलना चाहते हैं, ताकि यह गैर रूट उपयोगकर्ता को इंगित करे।

alias psql='/bitnami/postgresql/postgresql/bin/psql'

उपरोक्त psql -U postgres करने पर मेरे लिए काम किया


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

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


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

brew link postgres

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

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

http://www.postgresql.org/docs/9.4/static/upgrading.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 साथ rake db:create ) सब कुछ ठीक काम करता है।



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

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

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

रन

ps aux | grep <PID>

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

ps aux | grep 12345

फिर करो

kill <PID>

उदाहरण के लिए

kill 12345

मान लीजिए कि यह अभी भी चल रहा है

https://superuser.com/questions/553045/fatal-lock-file-postmaster-pid-already-exists

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


स्थापना के बाद डेटाबेस चलाने के लिए केवल दो चरणों (इससे पहले कि आप postgres उपयोगकर्ता के रूप में लॉग इन सुनिश्चित करें)

स्थापित-डिर्स / बिन / पोस्टमास्टर-डी इंस्टॉल-डिर्स / pgsql / डेटा

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

[[email protected] bin]$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data

चरण -2: इंस्टॉल किए गए पथ से psql चलाएं (यह जांचने के लिए कि आपने कहां स्थापित किया है '# पोस्ट पोस्टर्स' स्थापित स्थान का पता लगाने के लिए उपयोग करेंगे)

[[email protected] bin]$ psql 

कारण

शेर पहले से स्थापित पोस्टग्रेज़ के संस्करण के साथ आता है और डिफ़ॉल्ट रूप से उन बाइनरी का उपयोग करता है। आम तौर पर आप होमब्री पोस्टग्रेज़ बाइनरीज़ के पूर्ण पथ का उपयोग करके इसे प्राप्त कर सकते हैं लेकिन अन्य कार्यक्रमों के साथ अभी भी समस्याएं हो सकती हैं।

समाधान

curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

के जरिए

http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/





homebrew