Pertanyaan Bagaimana cara memulai server PostgreSQL di Mac OS X?


UPDATE AKHIR:

Saya lupa menjalankan perintah initdb.

</ UPDATE AKHIR>

dengan menjalankan perintah ini

ps auxwww | grep postgres

Saya melihat bahwa postgres tidak berjalan

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

ini menimbulkan pertanyaan: Bagaimana cara memulai server postgresql?

memperbarui:

>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

perbarui 2:

Sentuhan itu tidak berhasil jadi saya melakukan ini sebagai gantinya:

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

Tetapi ketika saya mencoba untuk memulai server rel, saya masih melihat ini:

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

perbarui 3:

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

perbarui 4:

Saya menemukan bahwa TIDAK ADA pg_hba.conf (hanya pg_hba.conf.sampel) jadi saya memodifikasi sampel dan menamainya (untuk menghilangkan sampel.). Berikut isinya:

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

tapi saya tidak mengerti ini:

> 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

juga:

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

perbarui 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.

perbarui 6:

ini sepertinya aneh:

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

meskipun, saya melakukan ini:

>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

jadi saya melakukan ini:

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

jadi saya mencoba ini:

> 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 

masih mendapatkan yang sama "Apakah server berjalan?" pesan.


763
2017-11-02 03:55


asal


Jawaban:


Itu Homebrew manajer paket termasuk plier peluncuran untuk memulai secara otomatis. Untuk informasi lebih lanjut, jalankan brew info postgres.

Mulai secara manual:

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

Hentikan secara manual:

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

Mulai secara otomatis:

"Untuk memulai postgresql sekarang dan mulai ulang saat masuk:"

brew services start postgresql 


Apa hasil dari pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start?

Apa hasil dari pg_ctl -D /usr/local/var/postgres status?

Apakah ada pesan kesalahan di server.log?

Pastikan koneksi tcp localhost diaktifkan di pg_hba.conf:

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

Periksa listen_addresses dan port di postgresql.conf:

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

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

Membersihkan

Postgres kemungkinan besar dipasang via Homebrew, Pengadu, MacPorts atau EnterpriseDB pemasang.

Periksa output dari perintah berikut untuk menentukan manajer paket mana yang diinstal:

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

1449



Jika Anda ingin memulai dan menghentikan postgresql secara manual (diinstal melalui homebrew), cara termudah adalah:

brew services start postgresql

dan

brew services stop postgresql

275



Saya memiliki masalah yang hampir sama, dan Anda mengutip perintah initdb sebagai perbaikannya. Ini juga merupakan solusi bagi saya, tetapi saya tidak melihat ada yang mempostingnya di sini, jadi bagi mereka yang mencarinya:

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

168



Pendekatan lain adalah menggunakan permata makan siang (pembungkus untuk peluncuran):

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

Untuk memulai postgres:

lunchy start postgres

Untuk menghentikan postgres:

lunchy stop postgres

Untuk info lebih lanjut lihat: "Cara Menginstal PostgreSQL di Mac Dengan Homebrew dan Lunchy"


78



Di sini saya 2 sen: Saya membuat alias untuk postgres pg_ctl dan memasukkannya ke dalam .bash_profile (versi postgresql saya adalah 9.2.4, dan jalur basis data adalah /Library/PostgreSQL/9.2/data).

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

Luncurkan terminal baru.

Lalu? Anda dapat memulai / menghentikan server postgresql Anda dengan ini:

postgres.server start
postgres.server stop

69



Jika komputer Anda tiba-tiba dinyalakan kembali

Pertama, Anda harus menghapus file tersebut /usr/local/var/postgres/postmaster.pid Kemudian Anda dapat memulai kembali layanan menggunakan salah satu dari banyak metode lain yang disebutkan tergantung pada pemasangan Anda.

Anda dapat memverifikasi ini dengan melihat log Postgres untuk melihat apa yang mungkin terjadi: tail -f /usr/local/var/postgres/server.log


56



Cara terbersih sejauh ini untuk memulai / menghentikan / memulai ulang postgres jika Anda telah menginstalnya brew adalah dengan hanya membongkar dan / atau memuat file konfigurasi peluncuran yang disertakan dengan instalasi:

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

Baris pertama akan menghentikan postgres dan baris kedua akan memulainya. Tidak perlu menentukan direktori data dll. Karena semuanya ada dalam file itu.


33



Untuk memulai server postgresql:

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

untuk mengakhiri server postgresql:

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

Anda juga dapat membuat alias melalui CLI untuk mempermudahnya:

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'

Dengan ini Anda cukup mengetik "pg-start" untuk memulai Postgres dan "pg-stop" untuk mematikannya.


27