[macos] मैक ओएस एक्स पर PostgreSQL सर्वर कैसे शुरू करें?



Answers

यदि आप मैन्युअल रूप से postgresql (होमब्रू के माध्यम से स्थापित) को प्रारंभ करना और रोकना चाहते हैं, तो सबसे आसान तरीका यह है:

brew services start postgresql

तथा

brew services stop postgresql
Question

अंतिम अद्यतन:

मैं initdb कमांड चलाने के लिए भूल गया था।

</ अंतिम अपडेट>

इस आदेश को चलाकर

ps auxwww | grep postgres

मैं देखता हूं कि पोस्टग्रेस नहीं चल रहा है

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

यह सवाल उठाता है: मैं postgresql सर्वर कैसे शुरू करूं?

अद्यतन करें:

>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

अद्यतन 2:

स्पर्श सफल नहीं था इसलिए मैंने इसके बजाय यह किया:

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/          
server.log

लेकिन जब मैं रेल सर्वर शुरू करने का प्रयास करता हूं, तो भी मुझे यह दिखाई देता है:

Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?

अद्यतन 3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

अपडेट 4:

मैंने पाया कि वहां कोई pg_hba.conf नहीं था (केवल pg_hba.conf.sample) इसलिए मैंने नमूना संशोधित किया और इसका नाम बदल दिया (। नमूना को हटाने के लिए)। यहां सामग्री हैं:

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

लेकिन मुझे यह समझ में नहीं आता है:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start     
server starting
> pg_ctl -D /usr/local/var/postgres status                                     
pg_ctl: no server running

भी:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

अद्यतन 5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

अद्यतन 6:

यह अजीब लगता है:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

हालांकि, मैंने यह किया:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

तो मैंने यह किया:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample 
#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

इसलिए मैंने यह कोशिश की:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf        
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf 

अभी भी वही हो रहा है "क्या सर्वर चल रहा है?" संदेश।




यदि आपका कंप्यूटर अचानक पुनरारंभ किया गया था

सबसे पहले, आपको फ़ाइल /usr/local/var/postgres/postmaster.pid को हटाना होगा, फिर आप अपने इंस्टॉल के आधार पर कई अन्य उल्लिखित तरीकों में से किसी एक का उपयोग करके सेवा को पुनरारंभ कर सकते हैं।

पोस्टग्रेज़ के लॉग को देखकर आप यह सत्यापित कर सकते हैं कि क्या हो रहा है: tail -f /usr/local/var/postgres/server.log




विकास उद्देश्यों के लिए, आधिकारिक साइट से Postgres.app को स्थापित करना सबसे आसान तरीका है। इसे एप्लिकेशन फ़ोल्डर से प्रारंभ / बंद किया जा सकता है या टर्मिनल में निम्न आदेशों का उपयोग किया जा सकता है:

# start
open -a Postgres

# stop
killall Postgres
killall postgres



उपर्युक्त उत्तरों में से कोई भी एक ही त्रुटि संदेश प्राप्त करने के बावजूद मेरे लिए समस्या का समाधान नहीं करता है। मैं अपने इंस्टेंस को बैक अप और मौजूदा पोस्टमास्टर.pid फ़ाइल को हटाकर चला रहा था जो लॉक था और कनेक्शन की अनुमति नहीं दे रहा था।




एक और दृष्टिकोण लंच मणि (लॉन्चक्ल के लिए एक रैपर) का उपयोग कर रहा है:

brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy

पोस्टग्रेस शुरू करने के लिए:

lunchy start postgres

पोस्टग्रेज़ को रोकने के लिए:

lunchy stop postgres

अधिक जानकारी के लिए देखें: " होमब्री और लंच के साथ मैक पर PostgreSQL कैसे स्थापित करें "




मुझे एक ही समस्या है और पहले पोस्ट से सभी अपडेट करें। लेकिन चेक लॉग फ़ाइल के बाद:

/usr/local/var/postgres/server.log

मैं सही कारण देखता हूं:

FATAL:  data directory "/usr/local/var/postgres" has group or world access
DETAIL:  Permissions should be u=rwx (0700).

इस निर्देशिका पर परिवर्तन अनुमति के बाद

chmod 0700 /usr/local/var/postgres

पोस्टग्रेस सर्वर शुरू हो गया है।

हर बार लॉग फ़ाइल जांचें।




मैक / ओएसएक्स के लिए, मुझे वास्तव में विकास के लिए उपयोग की जाने वाली अन्य पृष्ठभूमि सेवाओं के लिए लॉन्चरॉकेट पसंद है।

https://github.com/jimbojsb/launchrocket

इस साइट पर स्थापना पर अच्छे निर्देश हैं: http://macappstore.org/launchrocket/

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




Postgresql सर्वर शुरू करने के लिए:

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

postgresql सर्वर को समाप्त करने के लिए:

pg_ctl -D /usr/local/var/postgres stop -s -m fast

आप इसे आसान बनाने के लिए सीएलआई के माध्यम से उपनाम भी बना सकते हैं:

alias pg-start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias pg-stop='pg_ctl -D /usr/local/var/postgres stop -s -m fast'

इनके साथ आप इसे पोस्ट करने के लिए पोस्टग्रेस और "पीजी-स्टॉप" शुरू करने के लिए बस "पीजी-स्टार्ट" टाइप कर सकते हैं।




जब आप homebrew का उपयोग कर postgresql स्थापित करते हैं:

brew install postgres

आउटपुट के अंत में आप सर्वर को शुरू करने के लिए इस विधियों को देखेंगे:

To have launchd start postgresql at login:
    ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
    postgres -D /usr/local/var/postgres

मुझे लगता है कि यह सबसे अच्छा तरीका है।

आप सुविधा के लिए अपने .profile में उपनाम जोड़ सकते हैं।




Links