Creating cluster: initdb wird nicht erkannt?

Hi,

ich arbeite mich durch die source-code Installation von postgres via sourcecode (Suse 15.3, postgres 15.2). (Dies ist meine erste Installation)
Nun scheitere ich an Kapitel 19.2 https://www.postgresql.org/docs/current/creating-cluster.html bei initdb:
Beim Aufruf (mit der vollständigen Pfadangabe zu initdb) als postgres-User erhalte ich nachfolgende Meldung:

/…/…/postgresql-15.2/src/bin/initdb/initdb.c: line 1: /*-------------------------------------------------------------------------: No such file or directory
/…/…/postgresql-15.2/src/bin/initdb/initdb.c: line 2: findtimezone.c: command not found
/…/…/postgresql-15.2/src/bin/initdb/initdb.c: line 3: findtimezone.c: command not found
/…/…/postgresql-15.2/src/bin/initdb/initdb.c: line 4: findtimezone.c: command not found
/…/…/postgresql-15.2/src/bin/initdb/initdb.c: line 5: syntax error near unexpected token (' /.../.../postgresql-15.2/src/bin/initdb/initdb.c: line 5: * initdb creates (initializes) a PostgreSQL database cluster (site,’

  • die Berechtigungen habe ich geprüft, der postgres-User darf alle Pfade anzeigen, öffnen, ausführen
  • Wäre es möglich, dass die Datei als textfile gelesen wird? Wenn ich über den Aufruf cnf initdb mir alle initdb anzeigen lasse, wird die Datei initdb.c im postgresql-Ordner nicht angezeigt.

Besten Dank für Rat und Hilfe schonmal im Vorab!

Sowas habe ich noch nie gemacht.
Brauchst Du ein Cluster? Ich meine, arbeitest Du mit zigmillionen Datensätzen?
Wieso nimmst Du nicht eine fertig kompilierte Version fürs erste Mal?

Ich nehme an Du bekommst keine Compilerfehler und im Log ist alles hübsch?

Der Link ist kaputt, aber funktioniert als Text.
An welcher Stelle scheiterst Du dort im Text der Doku?
bzw.
Wenn der User postgres “alles darf”, bist Du auch dieser User beim Ausführen?
Welches OS?

Das Datenverzeichnis was initdb erstellt wird als “cluster” bezeichnet. Ist etwas verwirrend mit dem heutigen Verständnis von “cluster”

Gib mal die Logs vom Compile rüber - da ist was hingefallen.

Hi,

nein, ich brauche keinen ‘Cluster’ im üblichen Verständnis, tatsächlich habe ich mich an die Bezeichnungen aus der Installationsanweisung gehalten:
Kapitel '19.2. nennt sich “creating database cluster”, es bezieht sich auf die initalen Einrichtung von drei Datenbanken, postgres, template1 und template0, vgl. unter:

Before you can do anything, you must initialize a database storage area on disk. We call this a database cluster. (The SQL standard uses the term catalog cluster.) A database cluster is a collection of databases that is managed by a single instance of a running database server. After initialization, a database cluster will contain a database named postgres, […] There are two more databases created within each cluster during initialization, named template1 and template0

Trotzdem danke für den Hinweis :slight_smile:

Hi,

sorry, soweit ich es überblicke laufen die logs noch nicht, denn:

  • zumindest var/log enthält noch keinen Ordner für postgres.
  • wenn ich es richtig lese und verstehe kann ich das logging erst starten, sobald der Datenbank-Server läuft. (Kapitel 19.3 “starting database server” , ich bin noch in 19.2 …)
    Oder gibt es noch eine Stelle die ich prüfen kann? :thinking: Sorry, da kenne ich mich nicht so gut aus

Danke und viele Grüße

Hi,
sorry für die vielen Antworten, ich hätte es wohl besser in eine Antwort zusammengepackt, beim nächsten Mal besser :slightly_smiling_face: , hier nun mein letzter Nachtrag:

@pogomips:

Für SUSE 15.3 gibt es leider keine fertig kompilierte Version

an diesem Aufruf:

initdb -D /usr/local/pgsql/data

Über pg_ctl hatte ich es mit gleichem Ergebnis versucht.

Ja, bin ich.

SUSE Linux Enterprise Server 15.3

danke euch :slight_smile:

Hi,

das Problem ist gelöst, ich habe den Fehler gefunden:

In einem der vorangehenden Installations-Schritte (installation by source) habe ich den postgres-User angelegt.

Dieser Nachtrag hatte gefehlt:
export PATH=$PATH:/usr/local/pgsql/bin/

vgl. auch unter 17.5.2 Environment Variables auf

Danke nochmal an alle die hier geantwortet haben :-)!

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.