PERINGATAN:Jika Anda menghapus postmaster.pid tanpa memastikan benar-benar tidak ada postgres
proses yang menjalankan Anda, dapat merusak database Anda secara permanen . (PostgreSQL akan menghapusnya secara otomatis jika postmaster telah keluar.).
SOLUSI:Ini memperbaiki masalah--Saya menghapus file ini, dan semuanya berhasil!
/usr/local/var/postgres/postmaster.pid
--
dan inilah cara saya menemukan mengapa ini perlu dihapus.
-
Saya menggunakan perintah berikut untuk melihat apakah ada proses PG yang berjalan. bagi saya tidak ada, saya bahkan tidak bisa memulai server PG:
ps auxw | grep post
-
Saya mencari file .s.PGSQL.5432 yang ada di pesan kesalahan di atas. saya menggunakan perintah berikut:
sudo find / -name .s.PGSQL.5432 -ls
ini tidak menunjukkan apa-apa setelah mencari di seluruh komputer saya sehingga file tidak ada, tetapi jelas
psql
"menginginkannya" atau "mengira itu ada". -
Saya melihat log server saya dan melihat kesalahan berikut:
cat /usr/local/var/postgres/server.log
di akhir log server saya melihat kesalahan berikut:
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
-
Mengikuti saran dalam pesan kesalahan, saya menghapus file postmaster.pid di direktori yang sama dengan server.log. Ini menyelesaikan masalah dan saya dapat memulai ulang.
Jadi, sepertinya macbook saya membeku dan di-boot ulang menyebabkan Postgres berpikir bahwa prosesnya masih berjalan bahkan setelah reboot. Menghapus file ini diselesaikan. Semoga ini bisa membantu orang lain! Banyak orang memiliki masalah serupa tetapi sebagian besar jawabannya berkaitan dengan izin file, sedangkan dalam kasus saya, semuanya berbeda.