web-gelistirme-sc.com

Mac OS X'te PostgreSQL sunucusunu nasıl başlatabilirim?

NİHAİ GÜNCELLEME:

initdb komutunu çalıştırmayı unutmuştum.

</ NİHAİ GÜNCELLEME>

bu komutu çalıştırarak

ps auxwww | grep postgres

Postgreslerin çalışmadığını görüyorum.

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

bu soruyu gündeme getiriyor: Postgresql sunucusunu nasıl başlatabilirim?

güncelleştirme:

>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

güncelleme 2:

Dokunma başarılı değildi, bu yüzden bunu yaptım:

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

Ancak Rails sunucusunu başlatmaya çalıştığımda, şunu hala görüyorum:

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

güncelleme 3:

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

güncelleme 4:

Orada WAS NO pg_hba.conf (sadece pg_hba.conf.sample) olduğunu öğrendim, bu yüzden örneği değiştirdim ve yeniden adlandırdım (. Örneği kaldırmak için). İşte içeriği:

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

ama bunu anlamıyorum:

> 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

ayrıca:

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

güncelleme 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.

güncelleme 6:

bu garip görünüyor:

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

yine de bunu yaptım:

>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

bu yüzden bunu yaptım:

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

bu yüzden bunu denedim:

> 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 

hala aynı "sunucu çalışıyor mu?" mesaj.

832
Ramy

Homebrew paket yöneticisi otomatik olarak başlatmak için launchctl plists içeriyor. Daha fazla bilgi için brew info postgres komutunu çalıştırın.

Manuel olarak başlat:

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

Manuel olarak durdur:

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

Otomatik başlat:

Msgstr "Şimdi" postgresql'i başlatmak ve giriş yapmak için yeniden başlatmak ":

brew services start postgresql 


pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'nin sonucu nedir?

pg_ctl -D /usr/local/var/postgres status'nin sonucu nedir? 

Server.log dosyasında herhangi bir hata mesajı var mı?

Tcp localhost bağlantılarının pg_hba.conf dosyasında etkin olduğundan emin olun: 

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

Postgresql.conf dosyasında listen_adreslerini ve portunu kontrol edin:

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

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

Temizlemek

Postgres'ler büyük olasılıkla Homebrew , Fink , MacPorts veya EnterpriseDB installer tarafından kuruldu.

Hangi paket yöneticisinin kurulduğunu belirlemek için aşağıdaki komutların çıktısını kontrol edin:

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

Postgresql'i manuel olarak başlatmak ve durdurmak istiyorsanız (homebrew aracılığıyla yüklenir), en kolay yol şudur:

brew services start postgresql

ve

brew services stop postgresql
294
malopezcruz

Neredeyse aynı sorunu yaşadım ve initdb komutunu düzeltme olarak söyledin. Bu benim için de bir çözümdü, ama onu buraya kimsenin gönderdiğini görmedim, bu yüzden onu arayanlar için:

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

Başka bir yaklaşım öğle yemeği mücevherini (launchctl için bir sarmalayıcı) kullanmaktır:

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

Postgres başlatmak için:

lunchy start postgres

Postgresleri durdurmak için:

lunchy stop postgres

Daha fazla bilgi için bakınız: " PostgreSQL'i Homebrew ve Lunchy ile Mac'e Kurma "

78
pisaruk

Bilgisayarınız aniden yeniden başlatıldıysa

Öncelikle, /usr/local/var/postgres/postmaster.pid dosyasını silmeniz gerekir. Daha sonra, kurulumunuza bağlı olarak bahsi geçen birçok yöntemden birini kullanarak hizmeti yeniden başlatabilirsiniz.

Neler olup bittiğini görmek için Postgres günlüklerine bakarak bunu doğrulayabilirsiniz: tail -f /usr/local/var/postgres/server.log

73
rafaelportela

İşte benim 2 kuruş: Postgres pg_ctl için bir takma ad kullandım ve .bash_profile dosyasına koydum (postgresql sürümüm 9.2.4 ve veritabanı yolu /Library/PostgreSQL/9.2/data).

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

Yeni terminali başlat. 

Ve sonra? Postgresql sunucunuzu şununla başlatabilir/durdurabilirsiniz:

postgres.server start
postgres.server stop
68
Kenial

En temiz yol bugüne kadar başlatmak/durdurmak/postgres'i brew aracılığıyla yüklediyseniz yeniden başlatmak/başlatmak/durdurmak, kurulumla birlikte gelen launchd yapılandırma dosyasını kaldırmak ve/veya yüklemek:

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

İlk satır postgres durur ve ikinci satır başlayacaktır. Her şey o dosyada olduğundan hiçbir veri dizini vs. belirtmenize gerek yok.

Postgresql sunucusunu başlatmak için:

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

postgresql sunucusunu sonlandırmak için:

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

Ayrıca, kolaylaştırmak için CLI ile bir takma ad oluşturabilirsiniz:

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'

Bunlarla Postgres'i başlatmak için sadece "pg-start" ve kapatmak için "pg-stop" yazabilirsiniz.

27
Todd

Test amaçlı, PostgreSQL App en iyi seçenek olduğunu düşünüyorum!

Bir Uygulama Çalıştırın, Sunucu Çalışıyor ve Çalışıyor .. __ Uygulamayı Kapatın ve Sunucu Devam Ediyor.

http://postgresapp.com/

22
Crystian Leão

homebrew kullanarak postgresql yüklediğinizde:

brew install postgres

Çıktının sonunda sunucuyu başlatmak için bu yöntemleri göreceksiniz:

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

Bence bu en iyi yol. 

Kolaylık sağlamak için .profile’nize diğer ad ekleyebilirsiniz. 

9
jkaluzka

Aynı sorun var ve tüm güncellemeleri ilk gönderimden itibaren yapıyorum. Ancak kontrol log dosyasından sonra:

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

Gerçek nedeni görüyorum:

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

Bu dizindeki değişiklik izninden sonra

chmod 0700 /usr/local/var/postgres

postgres sunucusu başladı.

Her zaman günlük dosyasını kontrol edin.

7
Roosh

Tek kullanımlık hızlı bir test veritabanı için sunucuyu ön planda çalıştırabilirsiniz.

Yeni bir dizinde yeni bir postgres veritabanı başlat

mkdir db
initdb db -E utf8
createdb public

Sunucuyu ön planda başlatın (sunucuyu durdurmak için ctrl-C)

postgres -d db

Başka bir Shell oturumunda sunucuya bağlanın

psql -d public
7
k107

Bu cevaptaki varyasyon: https://stackoverflow.com/a/13103603/2394728

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

Geliştirme amacıyla, en basit yollardan biri Postgres.app 'ı resmi siteden ' e kurmaktır. Uygulamalar klasöründen başlatılabilir/durdurulabilir veya terminaldeki aşağıdaki komutları kullanarak:

# start
open -a Postgres

# stop
killall Postgres
killall postgres
4
Melnosta

PostgreSQL, Server.app içine entegre edilmiştir, Mountain Lion'daki App Store'dan edinilebilir. Bu, zaten yapılandırılmış olduğu ve yalnızca onu başlatmanız ve ardından kullanıcılar ve veritabanları oluşturmanız gerektiği anlamına gelir. 

Tip : $ PGDATA tanımlayarak başlamayın ve böyle devam ederek dosya konumlarını alın.

Bu dosyaya sahip olacaksınız: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist

Başlamak:

Sudo serveradmin start postgres

İşlem argümanlarla başladı:

/Uygulamalar/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D/Kütüphane/Sunucu/PostgreSQL/Data -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory =/Library/Logs/PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = açık -c log_statement = ddl -c logging_collector = açık -c unix_socket_dirin =

Sudo yapabilirsiniz:

Sudo -u _postgres psql template1

Veya bağlan:

psql -h localhost -U _postgres postgres

Veri dizinini, sürümünü, çalışma durumunu vb. Bulabilirsiniz. 

Sudo serveradmin fullstatus postgres  
4
bbaassssiiee
   # 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.
3
zee

Demlemek kullanarak yüklediyseniz, aşağıdaki komut yeterli olmalıdır.

brew services restart postgresql

Ve bu bazen işe yaramayabilir, bu durumda iki komutun altında kesinlikle çalışması gerekir

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

pg_ctl -D /usr/local/var/postgres start
2
shanu khera

PostGres'i EnterpriseDB yükleyicisini kullanarak kurduysanız, @Kenial'in önerdiği şey gitmenin yoludur.

Sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data start
Sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data stop
1
hithacker

yukarıdaki cevapların hiçbiri aynı hata mesajlarını almama rağmen benim için sorunu çözmedi. Kilitli olan ve bağlantılara izin vermeyen mevcut postmaster.pid dosyasını silerek örneğimi yeniden kurup çalıştırabildim.

1
Swedendrift

Macport'larda, yalnızca load/unload komutunu ve çalışan sunucunun port adını kullanın:

Sudo port load postgresql96-server
- or -
Sudo port unload postgresql96-server

bu yüzden /Library/LaunchDaemons/org.macports.postgresql96.plist dosyasının nerede olduğunu hatırlamanıza gerek kalmaz

1
Steve

Birisi için yararlı olabilecek bazı Edge vakaları var:

Bazı PID ile doldurulmuş postgres.pid olması seçeneği vardır. Ancak, makinenizi yeniden başlatırsanız ve işlem sonlandırılmadan önce tekrar geri dönerse, başka bir işlem bu PID'yi alır. Bu gerçekleşirse, hem pg_ctl durumu hem de demleme servisi postgres durumu hakkında sorular sordu, size UP olduğunu söyleyecektir. Sadece ps aux | grep ve gerçekte ertelendi mi kontrol edin

0
Adam Piotrowski

Bu her zaman benim için çalıştı, Craig Ringer'dan esinlenerek:

brew install proctools
Sudo pkill -u postgres

proctools pkill içerir. Brew'unuz yoksa: https://brew.sh/

0
Punnerud

Mac/OSX için, geliştirmede kullandığım bu ve diğer arka plan hizmetleri için LaunchRocket'ı gerçekten seviyorum.

https://github.com/jimbojsb/launchrocket

Bu sitenin kurulumla ilgili hoş talimatları var: http://macappstore.org/launchrocket/

Bu, Sistem Tercihlerinizde oturum açarken başlatmanızı, yeniden başlatmanızı, kökünü başlatmanızı, başlatmanızı sağlayan hoş bir ekran sunar.

0
theUtherSide
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

https://hub.docker.com/_/postgres

0
dewijones92

$ brew upgrade postgres

benim için düzeltti.

Tabii ki, postgres sürümünüzü yükseltecek ve herhangi bir bağımlılığı güncelleyecek/yükleyeceksiniz. UYARI: Postgresql sürümünüzün büyük olasılıkla değişeceğini bilerek bunu yapın. Benim için bu önemli değildi.

0
thedanotto

Bütünlük uğruna: Tmux veya Screen örneğinin içinde olup olmadığınızı kontrol edin, başlangıç ​​oradan işe yaramaz.

Gönderen: https://superuser.com/questions/879640/error-while-trying-to-start-postgres-installed-via-homebrew-operation-not-permi/898585

Bu benim için çözdü.

0
Fr4nc3sc0NL

bu benim için çalıştı (macOS 10.13) Sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data

veya önce cd /Library/PostgreSQL/9.6/bin/

0
Dmitry Evgrafoov