Ich versuche, eine PostgreSQL-Instanz zu installieren, nachdem ich sie aus dem Quellcode erstellt habe, aber das Ausführen des postmaster
Daemons 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 postmaster
Daemon 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 postmaster
fehlgeschlagenen Start und die netstat
Ausgabe zeigen, dass es bereits einen Prozess gibt, der den 5432
TCP-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 port
Konfigurations-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