Ich habe PostgreSQL 9.3 erfolgreich aus dem APT-Repository auf 2 VMs installiert, auf denen Ubuntu 12.04 und 13.04 ausgeführt werden. Es ist jedoch nicht möglich, PostgreSQL 9.3 ordnungsgemäß auf meinem Hostcomputer zu installieren, auf dem Ubuntu 12.04 ausgeführt wird.
Die Installation (dieses Mal) scheint in Ordnung zu sein, aber vielleicht gibt es einen Fehler, den ich nicht verstehe:
* No PostgreSQL clusters exist; see "man pg_createcluster"
Setting up postgresql-9.3 (9.3.0-2.pgdg12.4+1) ...
Creating new cluster 9.3/main ...
config /etc/postgresql/9.3/main
data /var/lib/postgresql/9.3/main
locale en_US.UTF-8
port 5432
update-alternatives: using /usr/share/postgresql/9.3/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode.
Also versuche ich mich als PostgreSQL-Benutzer hinzuzufügen, aber ich bekomme folgendes:
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Ich kann nicht sehen, dass PostgreSQL im Systemmonitor ausgeführt wird, und es befindet sich keine Datei im Ordner / var / run / postgresql / ... vollständig leer.
BEARBEITEN: Auf den VMs befindet sich eine Datei in / var / run / postgresql / mit dem Namen 9.3-main.pid
In der Protokolldatei des Hostcomputers befindet sich / var / log / postgresql nichts
Also ... was ist hier los, was nicht in meinen VMs los ist? Wie gesagt, die anderen Installationen auf den VMs, einschließlich PostGIS und PGAdmin, waren perfekt ... keine Ahnung, warum dieser Hostcomputer nicht läuft ...
quelle
/var/run/postgresql
Verzeichnis? Irgendwann nach erfolgreicher Installation fehlte dieser Ordner auf meinem Computer. Was sagt die Konfiguration über das zu verwendende Verzeichnis?postgresql.conf
im config-verzeichnis, das laut obiger angabe ist/etc/postgresql/9.3/main
. Sie sollten auch in den Protokolldateien nachsehen, wahrscheinlich in/var/log/postgresql
.Antworten:
Meine Ländereinstellungen wurden bei der Installation von PostgreSQL nicht richtig konfiguriert. Bereinigen und erneutes Installieren hat nicht geholfen. Ich habe die Anweisungen hier befolgt und das hat den Trick für mich getan.
Wesentliche Teile der verlinkten Informationen sind nachfolgend wiedergegeben:
Das Problem zeigte sich auf folgende Weise:
Das erste Problem war sehr einfach zu lösen, indem Folgendes ausgeführt wurde:
... und die bevorzugten Locations auswählen.
Aber danach weigerte sich PostgreSQL immer noch zu starten. Dies ist auf die Tatsache zurückzuführen, dass der Installationsprozess während der Installation versucht hat, einen Cluster zu erstellen, dies jedoch aufgrund der schlechten Gebietsschemata nicht getan wurde. Also müssen wir diesen Schritt wiederholen, indem wir Folgendes ausführen:
(Für die 9.3-Version von PostgreSQL)
Nach diesem Schritt startet PostgreSQL einwandfrei über
quelle
pg_createcluster
Sie sagt , dass der Cluster bereits vorhanden Sie es zuerst fallen müssen (dies wird alle Daten in sie löschen, so stellen Sie sicher , dass Sie eine Sicherungskopie):pg_dropcluster 9.3 main
.Hoffentlich haben Sie dieses Problem bereits gelöst, aber ich stoße auf ein ähnliches Problem, das eine andere Ursache zu haben scheint, und möglicherweise hilft meine Erfahrung, wenn Sie immer noch ein Problem haben.
Mein Problem mit 9.3 unter Ubuntu hängt damit zusammen, dass das Socket-Verzeichnis ein vorübergehendes Verzeichnis in / run ist. Grundsätzlich sollte das Skript init.d dafür sorgen, dass das Socket-Verzeichnis in / run / postgresql erstellt wird, wenn es während der Startaktion nicht vorhanden ist. Dies wird immer der Stand der Dinge nach einem Neustart sein.
Das Problem ist jedoch, dass das Skript init.d beendet wird, bevor die Startaktion ausgeführt wird, wenn das Socket-Verzeichnis nicht vorhanden ist. Dies liegt daran, dass der Aufruf von pg_lsclusters ohne das Socket-Verzeichnis fehlschlägt, was wiederum verhindert, dass die Startaktion jemals das Socket-Verzeichnis erstellt.
Ich habe nicht herausgefunden, was die beste Lösung ist, aber wenn ich die Logik zum Erstellen des Socket-Verzeichnisses von der Startaktion auf vor dem Aufruf von pg_lsclusters verlagere, kann ich den Server nach dem Neustart problemlos starten.
Hier ist der Teil der Startaktion, der das Erstellen des Socket-Verzeichnisses behandelt:
Ich werde ein Update veröffentlichen, wenn mir die Ursache dafür klar wird, da dies eindeutig nicht das erwartete Verhalten sein kann.
NACHTRAG:
Ich denke, der Grund, warum ich auf dieses Problem gestoßen bin, ist, dass ich keinen guten Wert für unix_socket_directories konfiguriert habe . In Version 9.2 war diese Konfigurationsoption unix_socket_directory, das ich entfernt habe, anstatt zu unix_socket_directories zu wechseln. Seit ich einen Wert für unix_socket_directories festgelegt habe, gab es keine Probleme mit dem Serverstart.
quelle
Ich hatte mehrere Probleme mit der Sockets-Datei, in Ihrem Fall /var/run/postgresql/.s.PGSQL.5432
Stellen Sie sicher, dass das Verzeichnis / var / run / postgresql vorhanden und beschreibbar ist, bevor Sie postgresql starten. Weitere Informationen finden Sie in dieser Diskussion .
Wenn Sie eine Verbindung herstellen, verwenden Sie -h:
und sehen, ob das es behebt.
quelle
Dies scheint das Problem unter Ubuntu zu beheben:
Postgresql.conf bearbeiten:
Mach jetzt
service postgresql start
quelle
Ich bin neu in PSQL, aber ich habe das Problem durch Bearbeiten von start.conf gelöst. Ich hatte die Einstellung "auto" kommentiert, um den Server manuell zu verwalten, aber es muss ein Wert angegeben werden: auto, manual oder disabled.
EGD.
quelle
Meiner Meinung nach ist das Startskript falsch. Die Konfigurationsdateien sind in /etc/postgresql/9.3/main installiert, aber das Skript /usr/share/postgresql-common/init.d-functions sucht in
Ersetzen Sie diese Zeile durch
quelle
Alle,
nach einigem graben habe ich hier eine lösung gefunden:
http://ubuntuforums.org/showthread.php?t=869080
Welche diese Anweisungen enthielten:
Im Terminal ausführen:
Jetzt läuft mein Server !!!
BEARBEITEN : nach einem Neustart läuft der Server immer noch nicht ...
Alle Gedanken darüber, warum ich dies ausführen musste, sind willkommen!
quelle
/etc/postgresql/9.3/main/postgresql.conf