PostgreSQL-Postmaster startet nicht

PostgreSQL-Postmaster startet nicht

Ich versuche, eine PostgreSQL-Instanz zu installieren, nachdem ich sie aus dem Quellcode erstellt habe, aber das Ausführen des postmasterDaemons vor dem Starten des Datenbankclusters scheint nicht zu funktionieren. Hier ist die Fehlermeldung, die ich beim Start erhalten habe:

postgres@Home:~$ /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
LOG:  could not bind IPv4 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds 
       and retry.
WARNING:  could not create listen socket for "localhost"
FATAL:  could not create any TCP/IP sockets

Als ich ein bisschen gegoogelt habe, konnte ich nur ein paar Hinweise finden. Es enthielt die Anweisung, die folgenden Befehle auszuführen. Die Ausgabe lautet wie folgt:

postgres@Home:~$ lsof -i :5432
COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
postgres 1169 postgres    3u  IPv4   1998      0t0  TCP localhost:postgresql (LISTEN)

postgres@Home:~$ netstat -an|grep :5432
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN   

Das lässt mich glauben, dass die Verbindung, die der Port, an den sich der postmasterDaemon anzuschließen versucht, tatsächlich verfügbar ist. Irgendwelche Ideen, was die Ursache sein könnte?

Und falls es Sie interessiert: Ich verwende pgsql 9.2.3. (Verschieben Sie dies bitte auch zu Stack Overflow oder Programmers, wenn dies die falsche Stack Exchange-Site für diese Frage ist.)

Antwort1

Die Fehlermeldung beim postmasterfehlgeschlagenen Start und die netstatAusgabe zeigen, dass es bereits einen Prozess gibt, der den 5432TCP-Port verwendet. Wahrscheinlich ist es PostgreSQL, das bereits als Teil Ihres Systems installiert ist. Überprüfen Sie, ob Sie diepostgresql-9.1Paket installiert und die Ausgabe von pg_lsclusters.

Wenn Sie Ihr eigenes, selbst kompiliertes PostgreSQL parallel zu dem für Ubuntu vorinstallierten PostgreSQL ausführen möchten, müssen Sie den portKonfigurations-Eintrag in Ihrem ändern /usr/local/pgsql/data/postgresql.conf.

Wenn Sie dagegen nur Ihr selbst kompiliertes PostgreSQL ausführen und den Standardport verwenden möchten 5432, können Sie entweder das Ubuntu-Paket entfernen oder den Cluster beim Booten deaktivieren, indem Sie/etc/postgresql/9.1/main/start.conf

verwandte Informationen