Kesalahan paket startup Postgres tidak lengkap

13

Saya mencoba untuk menginstal Postgres 9.3 di Ubuntu 14.04 dan saya mendapatkan kesalahan yang menjengkelkan pada saat startup. Inilah yang saya lihat:

$ sudo service postgresql restart
* Restarting PostgreSQL 9.3 database server
* Error: could not exec /usr/lib/postgresql/9.3/bin/pg_ctl /usr/lib/postgresql/9.3/bin/pg_ctl start -D /var/lib/postgresql/9.3/main -l /var/log/postgresql/postgresql-9.3-main.log -s -o  -c config_file="/etc/postgresql/9.3/main/postgresql.conf" : [fail]

Jadi saya memeriksa file log dengan output ini:

 2015-01-05 21:50:05 EST LOG:  database system was shut down at 2015-01-05 21:50:03 EST
 2015-01-05 21:50:05 EST LOG:  database system is ready to accept connections
 2015-01-05 21:50:05 EST LOG:  autovacuum launcher started
 2015-01-05 21:50:06 EST LOG:  incomplete startup packet
 2015-01-05 21:51:22 EST ERROR:  syntax error at or near "exit" at character 1
 2015-01-05 21:51:22 EST STATEMENT:  exit;

"Paket startup yang tidak lengkap" tampaknya menjadi penyebab tetapi saya mengalami kesulitan menemukan info di luar sana tentang apa yang mungkin terjadi, jadi saya pikir saya akan bertanya. Terima kasih sebelumnya.

andrewniesen
sumber

Jawaban:

15

Ada 3 item berbeda dalam pertanyaan ini:

  • Paket startup yang tidak lengkap yang terjadi pada awal server tidak penting, Anda dapat mengabaikannya. Baca bantuan paket startup yang tidak lengkap diperlukan (dalam milis pgsql-umum) untuk informasi lebih lanjut.

  • kesalahan sintaks pada atau dekat "keluar" pada karakter 1 berarti bahwa klien mengeluarkan exitseolah-olah itu adalah pernyataan SQL.

  • Kesalahan tidak dapat mengeksekusi ketika mengeluarkan service postgresql restarttampak seperti masalah instalasi serius tapi itu bertentangan dengan entri log yang database system is ready to accept connectionsberarti bahwa server mulai baik-baik saja.

Daniel Vérité
sumber
Respons Anda "terlihat seperti masalah instalasi serius" mendorong saya untuk melakukan riset lebih lanjut tentang cara menghapus Postgres sepenuhnya dan menginstal ulang. Saya menemukan artikel ini yang sangat membantu dalam menghapus setiap jejak Postgres sebelum menginstal ulang dan bekerja dengan baik.
andrewniesen
8
salah satu kemungkinan penyebab "Paket startup tidak lengkap" adalah ketika koneksi TCP dibuat ke port postgresql 5432, dan segera ditutup. Ini bisa terjadi ketika program pemantauan dikonfigurasikan untuk memeriksa port, tetapi tidak menjalankan perintah SQL.
Tom H
Baik melihat @ Tom, itu menggigit saya hari ini. Apakah ada cara lain untuk memeriksa apakah database menerima koneksi? MySQL memilikimysqladmin --wait=30 ping
Yarek T
1
@YarekT: pg_isready - periksa status koneksi server PostgreSQL
Daniel Vérité
-1

Mungkin iptables Anda menjatuhkan paket di port 5432.
Pertimbangkan untuk menambahkan aturan berikut ke iptables Anda:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
Sadads Dadssa
sumber