PEMBARUAN AKHIR:
Saya lupa menjalankan initdb
perintah.
</ FINAL UPDATE>
dengan menjalankan perintah ini
ps auxwww | grep postgres
Saya melihat 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 saya 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
pembaruan 2:
Sentuhan 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 memulai rails server, saya masih melihat ini:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
pembaruan 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
pembaruan 4:
Saya menemukan bahwa TIDAK ADA pg_hba.conf (hanya pg_hba.conf.sample) jadi saya memodifikasi sampel dan menamainya kembali (untuk menghapus .sample). 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
pembaruan 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.
pembaruan 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
Namun, 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.
sumber
sudo
, yaitusudo pg_ctl...
Jawaban:
The Homebrew manajer paket termasuk plists launchctl untuk memulai secara otomatis. Untuk informasi lebih lanjut, jalankan
brew info postgres
.Mulai secara manual:
pg_ctl -D /usr/local/var/postgres start
Berhenti secara manual:
pg_ctl -D /usr/local/var/postgres stop
Mulai secara otomatis:
"Untuk memiliki launchd mulai postgresql sekarang dan restart saat login:"
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 localhost tcp diaktifkan di pg_hba.conf:
Periksa listen_addresses dan port di postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Membersihkan
Postgres kemungkinan besar diinstal melalui Homebrew , Fink , MacPorts atau installer EnterpriseDB .
Periksa output dari perintah berikut untuk menentukan manajer paket yang diinstal dengan:
sumber
brew services start postgresql
ini adalah jawaban yang lebih terkini, dan langsung.Jika Anda ingin memulai dan menghentikan postgresql secara manual (diinstal melalui homebrew), cara termudah adalah:
dan
Jika Anda memiliki versi tertentu, pastikan untuk menambahkan sufiks versi, misalnya:
sumber
brew services
lebih cepat ... ini adalah satu-satunya solusi yang bekerja untuk saya. <3 terima kasih!brew tap gapple/services
akan membuat perintah layanan minuman berfungsi lagibrew tap homebrew/services
masih berfungsi github.com/Homebrew/homebrew-servicesinitdb
berhasil dijalankan. Kalau tidak diam-diam gagal (tetapi tampaknya telah bekerja, dengan layanan ditampilkan sebagai dimulai padabrew services list
.brew services restart postgresql
, karena memulai db dengan pg_ctl ataubrew services start
mengatakan "server lain mungkin berjalan" dan dan menghentikan db dengan pg_ctl digantung.Saya memiliki masalah yang hampir sama, dan Anda mengutip perintah initdb sebagai perbaikan. Ini juga solusi bagi saya, tetapi saya tidak melihat ada orang yang mempostingnya di sini, jadi bagi mereka yang mencarinya:
sumber
rm -rf /usr/local/var/postgres
dan kemudian ini berhasil untuk sayachown _your username on your comp_ usr/local/var/postgres
), lalu initdb. Setelah itu server mulai secara otomatis ketika Anda me-restart (jika Anda mengikuti instruksi Homebrew untuk itu) atau secara manualpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(termasuk menghapus direktori lama jika perlu),brew services start postgresql
berfungsirm -rf
segala sesuatu yang saat ini ada dalam basis data Anda membuat Anda sedikit takut, alih-alih menghapusnya sepenuhnya, Anda bisa menggunakan sesuatu sepertimv /usr/local/var/postgres /usr/local/var/postgres.backup
memindahkannya ke direktori cadangan baru, kemudian jalankan perintah untuk memulai kembali basis data.Jika komputer Anda tiba-tiba dinyalakan kembali
Pertama, Anda harus menghapus file
/usr/local/var/postgres/postmaster.pid
Kemudian Anda dapat me-restart layanan menggunakan salah satu dari banyak metode lain yang disebutkan tergantung pada instalasi Anda.Anda dapat memverifikasi ini dengan melihat log Postgres untuk melihat apa yang mungkin terjadi:
tail -f /usr/local/var/postgres/server.log
sumber
tail -f /usr/local/var/postgres/server.log
untuk melihat apakah Anda harus menghapus file itu. ref coderwall.com/p/zf-fww/…~/homebrew/var/postgres/postmaster.pid
postmaster.pid
jika komputer tiba-tiba restart?Pendekatan lain menggunakan permata makan siang (pembungkus untuk launchctl):
Untuk memulai postgres:
Untuk menghentikan postgres:
Untuk info lebih lanjut, lihat: " Cara Memasang PostgreSQL di Mac dengan Homebrew dan Lunchy "
sumber
Di sini 2 sen saya: Saya membuat alias untuk pg_ctl postgres dan memasukkannya ke .bash_profile (versi postgresql saya adalah 9.2.4, dan jalur basis data adalah /Library/PostgreSQL/9.2/data).
Luncurkan terminal baru.
Lalu? Anda dapat memulai / menghentikan server postgresql Anda dengan ini:
sumber
Cara terbersih sejauh ini untuk memulai / menghentikan / me-restart postgres jika Anda telah menginstalnya
brew
adalah dengan hanya membongkar dan / atau memuat file konfigurasi launchd yang datang dengan instalasi:Baris pertama akan menghentikan postgres dan baris kedua akan memulainya. Tidak perlu menentukan direktori data apa pun dll karena semuanya ada di file itu.
sumber
brew services start postgres
(dan berhenti). Lempar a-v
pada akhirnya dan Anda dapat melihat apa yang dilakukannya.Untuk memulai server postgresql:
untuk mengakhiri server postgresql:
Anda juga dapat membuat alias melalui CLI untuk membuatnya lebih mudah:
Dengan ini, Anda cukup mengetik "pg-start" untuk memulai Postgres dan "pg-stop" untuk mematikannya.
sumber
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
bagaimana cara memperbaikinya?Untuk tujuan pengujian, saya pikir App PostgreSQL adalah pilihan terbaik!
Jalankan Aplikasi, dan server aktif. Tutup Aplikasi, dan server mati.
http://postgresapp.com/
sumber
ketika Anda menginstal postgresql menggunakan homebrew:
di akhir output Anda akan melihat metode ini untuk memulai server:
Saya pikir ini adalah cara terbaik.
Anda dapat menambahkan alias ke profil. Anda untuk kenyamanan.
sumber
Untuk database uji sekali pakai yang cepat, Anda dapat menjalankan server di latar depan.
Inisialisasi database postgres baru di direktori baru
Mulai server di latar depan (ctrl-C untuk menghentikan server)
Di sesi shell lain, sambungkan ke server
sumber
Saya memiliki masalah yang sama dan melakukan semua pembaruan dari posting pertama. Tetapi setelah memeriksa file log:
Saya melihat penyebab sebenarnya:
Setelah mengubah izin pada direktori ini
server postgres telah dimulai.
Setiap kali memeriksa file log.
sumber
PostgreSQL terintegrasi dalam Server.app tersedia melalui App Store di Mountain Lion. Itu artinya sudah dikonfigurasi, dan Anda hanya perlu meluncurkannya, lalu buat pengguna dan basis data.
Kiat : Jangan mulai dengan mendefinisikan $ PGDATA dan seterusnya, ambil lokasi file apa adanya.
Anda akan memiliki file ini: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Untuk memulai:
Proses dimulai dengan argumen:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Library / Server / 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 = pada -c log_statement = ddl -c logging_collector = pada -c unix_socket_directory = / private / var / pgsql_socket_socket_socket_socket_socket_socket_socket_socket_socket_create_socket_socket_create_socket_create_socket_create_ 07
Anda bisa sudo:
Atau hubungkan:
Anda dapat menemukan direktori data, versi, status berjalan dan sebagainya dengan
sumber
Variasi pada jawaban ini: https://stackoverflow.com/a/13103603/2394728
sumber
Untuk tujuan pengembangan, salah satu cara paling sederhana adalah menginstal Postgres.app dari situs resmi . Itu dapat dimulai / dihentikan dari folder Aplikasi atau menggunakan perintah berikut di terminal:
sumber
killall
mungkin bukan cara terbaik untuk menghentikan basis data.sumber
Jika Anda telah menginstal menggunakan brew, perintah di bawah ini sudah cukup.
Dan ini kadang-kadang mungkin tidak berhasil, dalam hal ini di bawah dua perintah pasti bekerja
sumber
tidak ada jawaban di atas yang memperbaiki masalah saya meskipun mendapatkan pesan kesalahan yang sama. Saya bisa membuat instance saya kembali dan berjalan dengan menghapus file postmaster.pid yang ada yang terkunci dan tidak mengizinkan koneksi.
sumber
Untuk macports, cukup gunakan perintah load / unload dan nama port dari server yang sedang berjalan:
jadi Anda tidak perlu mengingat di mana
/Library/LaunchDaemons/org.macports.postgresql96.plist
file tersebut beradasumber
https://hub.docker.com/_/postgres
sumber
Jika Anda menginstal Postgres menggunakan installer EnterpriseDB, maka apa yang disarankan @ Kenial adalah cara yang harus dilakukan.
sumber
yang bekerja untuk saya (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
atau pertama
cd /Library/PostgreSQL/9.6/bin/
sumber
$ brew upgrade postgres
memperbaikinya untukku.
Itu, tentu saja, akan meningkatkan versi postgres Anda dan memperbarui / menginstal semua dependensi.
sumber
Untuk Mac / OSX, saya sangat suka LaunchRocket untuk ini dan layanan latar belakang lain yang saya gunakan dalam pengembangan.
https://github.com/jimbojsb/launchrocket
Situs ini memiliki instruksi bagus tentang pemasangan: http://macappstore.org/launchrocket/
Ini memberi Anda layar yang bagus di System Preferences Anda yang memungkinkan Anda untuk memulai, mem-boot ulang, me-root, memulai saat login.
sumber
Ini bekerja untuk saya setiap saat, terinspirasi oleh Craig Ringer:
proctools termasuk pkill. Jika Anda tidak memiliki Brew: https://brew.sh/
sumber
Demi kelengkapan: Periksa apakah Anda berada di dalam
Tmux
atauScreen
instance, mulai tidak akan bekerja dari sana.Dari: /superuser/879640/error-while-trying-to-start-postgres-installedvia-homebrew-operation-not-permi/898585
Ini menyelesaikannya untuk saya.
sumber
Ada beberapa kasus tepi yang mungkin akan bermanfaat bagi seseorang:
Ada pilihan, bahwa Anda akan memiliki postgres.pid diisi dengan beberapa PID. Tetapi jika Anda me-restart mesin Anda, dan sebelum postgress akan kembali lagi, beberapa proses lain akan mengambil PID itu. Jika itu akan terjadi, status pg_ctl dan layanan buatan yang ditanya tentang status postgres, akan memberi tahu Anda bahwa itu UP. Hanya ps aux | grep dan periksa apakah benar-benar postgress
sumber
Homebrew adalah jalannya !!
Untuk memulai layanan:
Untuk daftar:
untuk menghentikan layanan .:
sumber
Jika Anda tidak menginstalnya dengan minuman dan langsung dari paket mac, ini berfungsi untuk saya untuk PostgreSQL 12 saat menggunakan semua lokasi default, variabel, dll.
sumber
Saya menghadapi masalah yang sama. Sudah mencoba semua solusi ini tetapi tidak ada yang berhasil.
Akhirnya berhasil membuatnya bekerja dengan mengubah postgres HOST di pengaturan Django dari
localhost
ke127.0.0.1
.Ceria jika itu membantu.
sumber