Postgres eksik başlangıç ​​paketi hatası


13

Ubuntu 14.04 üzerine Postgres 9.3 yüklemeye çalışıyorum ve başlangıçta rahatsız edici bir hata alıyorum. İşte gördüğüm:

$ 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]

Bu yüzden günlük dosyasını bu çıktı ile kontrol ettim:

 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;

"Eksik başlangıç ​​paketi" suçlu gibi görünüyor ama neler olup bittiği hakkında orada bilgi bulmakta sorun yaşıyorum, bu yüzden soracağımı düşündüm. Şimdiden teşekkürler.

Yanıtlar:


15

Bu soruda 3 farklı öğe var:

  • Sunucu başlangıcında oluşan eksik başlangıç ​​paketi önemsizdir, yoksayabilirsiniz. Daha fazla bilgi için gereken Başlangıç ​​paketi yardımı (pgsql-general mail listesindeki) bölümünü okuyun .

  • karakter 1'deki "çıkış" sözdizimindeki veya yakınındaki sözdizimi hatası, bir istemcinin exitSQL deyimi gibi yayınladığı anlamına gelir .

  • Exec yapamadı verirken hata service postgresql restartciddi bir kurulum sorunu gibi görünüyor ama günlük girişinden çelişki oluyor database system is ready to accept connectionssunucu gayet güzel başladı yani.


Yanıtınız "ciddi bir yükleme sorununa benziyor", Postgres'i tamamen silme ve yeniden yükleme konusunda biraz daha araştırma yapmamı istedi. Bulduğum bu yazıyı yeniden öncesinde Postgres her eser giderilmesinde yardımcı oldu ve büyük çalıştı.
andrewniesen

8
"Eksik başlangıç ​​paketi" nin olası nedenlerinden biri, postgresql bağlantı noktası 5432'ye bir TCP bağlantısı yapılması ve derhal kapatılmasıdır. Bu, bir izleme programı bağlantı noktasını kontrol edecek şekilde yapılandırılmış, ancak bir SQL komutu çalıştırmayacak şekilde yapılandırıldığında meydana gelebilir.
Tom H

@TomH'u güzel gördüm, bugün beni ısırdı. Veritabanının bağlantıları kabul edip etmediğini kontrol etmenin başka bir yolu var mı? MySQLmysqladmin --wait=30 ping
Yarek T

1
@YarekT: pg_isready - PostgreSQL sunucusunun bağlantı durumunu kontrol edin
Daniel Vérité

-1

Belki iptables'larınız 5432 numaralı bağlantı noktasına paketleri bırakıyor. İptables'ınıza
aşağıdaki kuralı eklemeyi düşünün:

# sudo iptables -A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.