Führen Sie den Befehl "su - postgres -c ..." als root aus
Ich habe die Antwort hier gefunden: https://bugzilla.redhat.com/show_bug.cgi?id=771496
Beschreibung des Problems: Nach der Erstinstallation einer Postgresql-Server-RPM bleibt Ihnen ein nicht startbarer Dienst, bis Sie den folgenden Befehl als root ausführen
su - postgres -c "initdb -D / var / lib / pgsql / data"
Versionsnummer der ausgewählten Komponente (falls zutreffend):
[root @ oscar] # rpm -q postgresql-server postgresql-server-9.1.2-1.fc16.x86_64
Wie reproduzierbar: Immer
Hintergrundgeschichte
Mehrere Stellen hatten mich angewiesen, diesen Befehl für Fedora 16 zu verwenden, anstatt den vorherigen Anweisungen zu folgen (neuer Befehl: su - postgres -c "PGDATA = / var / lib / pgsql / data initdb"), aber nachdem ich 'su' bei gesehen hatte Vorne nahm ich an, dass es mich zu root wechseln würde, wenn ich den Befehl ausführte. Es forderte mich immer wieder zur Eingabe eines Passworts auf, aber nichts funktionierte.
Ich habe versucht, das Root-Passwd, mein eigenes (als ob sudo'ing), "postgres" und "pgsql", falls ich dies irgendwie als postgres-Benutzer tun sollte, und habe sogar das Passwort leer gelassen. Ich habe versucht, root zu werden und dann den Befehl ohne das anfängliche 'su -' auszuführen (beginnend mit "postgres -c ..."), aber das ist auch fehlerhaft und hat mir Folgendes gesagt:
"Der Server muss unter einer nicht privilegierten Benutzer-ID gestartet werden, um mögliche Kompromisse bei der Systemsicherheit zu vermeiden. Weitere Informationen zum ordnungsgemäßen Starten des Servers finden Sie in der Dokumentation."
Schließlich habe ich versucht, den vollständigen Befehl "su - postgres -c ..." als root auszuführen, aber immer noch "su" zu verwenden, und wow - es hat funktioniert. Jetzt startet der Dienst. Danke Redhat Bug Tracking!
Zusammenfassung
su to root, dann geben Sie ein:
su - postgres -c "PGDATA = / var / lib / pgsql / data initdb"