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





homebrew (17)


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

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

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

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

मैं 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 

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




यहां मेरे 2 सेंट: मैंने postgres pg_ctl के लिए उपनाम बनाया है और इसे .bash_profile में रखा है (मेरा पोस्टग्रेस्क्ल संस्करण 9.2.4 है, और डेटाबेस पथ /Library/PostgreSQL/9.2/data है)।

alias postgres.server="sudo -u postgres pg_ctl -D /Library/PostgreSQL/9.2/data"

नया टर्मिनल लॉन्च करें।

और तब? आप इसके साथ अपने postgresql सर्वर को शुरू / बंद कर सकते हैं:

postgres.server start
postgres.server stop



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




   # remove old database files (If there was any)
   $rm -rf /usr/local/var/postgres    # install the binary

    $ brew install postgresql

    # init it
    $ initdb /usr/local/var/postgres

    # start the postgres server
    $ postgres -D /usr/local/var/postgres

    # create your database
    $ createdb mydb


    # Access db.
    $ psql mydb
    psql (9.0.1)
    Type "help" for help.



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

# start
open -a Postgres

# stop
killall Postgres
killall 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 पैकेज मैनेजर में स्वचालित रूप से प्रारंभ करने के लिए लॉन्चक्टल प्लिस्ट शामिल हैं। अधिक जानकारी के लिए brew info postgres चलाएं।

मैन्युअल रूप से शुरू करें:

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

मैन्युअल रूप से रोकें:

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

स्वचालित रूप से प्रारंभ करें:

"लॉन्च करने के लिए अभी postgresql शुरू करें और लॉगिन पर पुनरारंभ करें:"

brew services start postgresql

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start का परिणाम क्या है?

pg_ctl -D /usr/local/var/postgres status का नतीजा क्या है?

क्या server.log में कोई त्रुटि संदेश है?

सुनिश्चित करें कि tcp localhost कनेक्शन pg_hba.conf में सक्षम हैं:

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust

Postgresql.conf में listen_addresses और पोर्ट को देखें:

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'     # what IP address(es) to listen on;
#port = 5432                # (change requires restart)

सफाई करना

पोस्टग्रेज़ Homebrew , Fink , MacPorts या EnterpriseDB MacPorts इंस्टॉलर के माध्यम से सबसे अधिक स्थापित किया गया था।

निम्न आदेशों के आउटपुट को यह निर्धारित करने के लिए जांचें कि यह किस पैकेज प्रबंधक के साथ स्थापित किया गया था:

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres



जब आप 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 में उपनाम जोड़ सकते हैं।




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

/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

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

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




परीक्षण उद्देश्यों के लिए, मुझे लगता है कि PostgreSQL ऐप सबसे अच्छा विकल्प है!

एक ऐप चलाएं, और सर्वर ऊपर और चल रहा है। ऐप बंद करें, और सर्वर नीचे चला जाता है।

http://postgresapp.com/




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

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

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

lunchy start postgres

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

lunchy stop postgres

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




इस उत्तर पर भिन्नता: https://.com/a/13103603/2394728

initdb `brew --prefix`/var/postgres/data -E utf8`



मेरे पास लगभग एक ही समस्या थी, और आपने initdb कमांड को ठीक करने के रूप में उद्धृत किया। यह मेरे लिए भी समाधान था, लेकिन मैंने नहीं देखा कि किसी ने इसे यहां पोस्ट किया है, इसलिए जो लोग इसे ढूंढ रहे हैं उनके लिए:

initdb /usr/local/var/postgres -E utf8



PostgreSQL को माउंटन शेर में ऐप स्टोर के माध्यम से उपलब्ध सर्वर.एप में एकीकृत किया गया है। इसका मतलब है कि यह पहले ही कॉन्फ़िगर किया गया है, और आपको केवल इसे लॉन्च करने की आवश्यकता है, और फिर उपयोगकर्ता और डेटाबेस बनाएं।

युक्ति : $ PGDATA को परिभाषित करने के साथ शुरू न करें और इसी तरह, फ़ाइल स्थान ले लें।

आपके पास यह फ़ाइल होगी: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

शुरू करना:

sudo serveradmin start postgres

तर्क के साथ प्रक्रिया शुरू हुई:

/ अनुप्रयोग / सर्वर .app/Contents/ServerRoot/usr/bin/postgres_real -D / लाइब्रेरी / सर्वर / PostgreSQL / डेटा -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / लाइब्रेरी / लॉग / PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = on -c log_statement = ddl -c logging_collector = on -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_group = _postgres -c unix_socket_permissions = 0770

आप सूडो कर सकते हैं:

sudo -u _postgres psql template1

या कनेक्ट करें:

psql -h localhost -U _postgres postgres

आप डेटा निर्देशिका, संस्करण, चलने की स्थिति और आगे के साथ पा सकते हैं

sudo serveradmin fullstatus postgres  



एक त्वरित डिस्पोजेबल परीक्षण डेटाबेस के लिए आप अग्रभूमि में सर्वर चला सकते हैं।

एक नई निर्देशिका में एक नया पोस्टग्रेज डेटाबेस शुरू करें

mkdir db
initdb db -E utf8
createdb public

अग्रभूमि में सर्वर प्रारंभ करें (सर्वर को रोकने के लिए ctrl-C)

postgres -d db

एक और खोल सत्र में, सर्वर से कनेक्ट करें

psql -d public



यदि आपने आधिकारिक पोस्टग्रेस साइट से BigSQL द्वारा ग्राफ़िकल इंस्टॉलर का उपयोग करके स्थापित किया है और यदि आपने डिफ़ॉल्ट स्थान में स्थापित किया है ...

आप अपनी होम निर्देशिका में अपना अनइंस्टॉलर पा सकते हैं: /Users/<yourusername/PostGreSQL/uninstall/





macos postgresql homebrew