Postgres 11 Installationsfehler - database cluster initialisation failed

Hallo zusammen,

habe seit heute ein neues Laptop erhalten, DELL XPS 15 mit Windows 10 Pro. Das Gerät ist unberührt und hat lediglich Dell Software drauf.
Ich versuche bisher unerfolgreich postgresql 11 zu installieren. Während der Installation kommt folgende Fehlermeldung:

Problem running post-install step. Installation may not complete correctly. The Database cluster initialisation failed.

Anschließend habe ich mir einige Stackoverflow-Threads angeschaut und habe folgende Lösungen versucht:

  • Postgres nicht in Programme installiert.
  • Einen postgres Benutzer in Windows erstellt und die Zugriffsrechte für den Installationspfad von Postgres modififziert wie in diesem Video gezeigt ->
    https://www.youtube.com/watch?v=pS_zWDDDSe0
  • Alle Updates installiert die Windows derzeit zu bieten hat.
  • Firewall und Antivirus von Windows selber deinstalliert.

Nichts davon hat Erfolg gebracht, die Fehlermeldung während der Installation ist immer die selbe:

problem running post install step database cluster initialisation failed

Der Log gibt folgendes heraus:

Error running cscript //NoLogo
“C:\develop\postgres/installer/server/initcluster.vbs”
“NT AUTHORITY\NetworkService” “postgres”
“****” “C:\develop\postgres”
“C:\develop\postgres\data” 5432
“DEFAULT” 0: Program ended with an error exit code Problem running post-install step. Installation may not complete correctly The database cluster initialisation failed. [14:03:49] Delete the temporary scripts directory… Creating menu shortcuts… Executing cscript //NoLogo “C:\develop\postgres\installer\server\createshortcuts_clt.vbs” “PostgreSQL 11”
“C:\develop\postgres” Script exit code: 0



Executing batch file ‘radAD31B.bat’…
The program “postgres” was found by
“C:/develop/postgres/bin/initdb.exe”
but was not the same version as initdb.

Das beantwortet nicht direkt Deine Frage, aber ich installiere Postgres unter Windows immer so:

  • ZIP Archiv von https://www.enterprisedb.com/products-services-training/pgbindownload herunterladen
  • ZIP Archiv auspacken, in Deinem Fall z.B. nach C:\develop - da entsteht dann ein Unterverzeichnis namens pgsql, das kannst Du dann zu “postgres” umbennen
  • Data-Directory (auch unter dem Namen “Cluster” bekannt) via initdb manuell anlegen, z.B.:
c:\develop\postgres\bin\initdb -D c:\Develop\postgres_data
  • Dann den Service erstellen (benötigt Admin-Rechte!)
c:\develop\postgres\bin\pg_ctl register -D postgresql-11 -D c:\Develop\postgres_data

Wenn der Service nicht startet, liegt’s meistens an falschen Berechtigungen für das Datenverzeichnis. Die kannst Du dann über die “Eigenschaften” des Verzeichnisses anpassen.

Alternativ kannst Du ja mal den Installer von 2ndQuadrant ausprobieren: https://www.2ndquadrant.com/en/resources/postgresql-installer-2ndquadrant/ oder den von BigSQL: https://www.openscg.com/bigsql/postgresql/installers/

Versuch nal folgendes.
1)
Öffne Windows Commandprompt als Admin
2)
tippe ein cd (dein Posgtres install ordner und darin dein bin ordner)
3)
Tipp e ein initdb.exe und bestätige mit ENTER

Was bekommst Du für eine Meldung?

Wenn da was steht wie msvcr120.dll not found oder ähnlich dann installier mal

https://www.microsoft.com/de-de/download/details.aspx?id=40784

und wiederhole 3).

Gerade die Version von BigSQl 64 bit auf Win10 pro, nicht unberührt, nicht Dell getestet.
Habe probehalber eine Tabelle angelegt geht. Installation lief mit PGadmin 3, der fürchterlich meckert bei der Installation und beim Start und Betrieb.
Keine “advanced” Optionen gewählt, bestehende Installation wurde erkannt und automatisch anderer Port gewählt.
Auf dem Rechner sind ein paar übliche Softwaren drauf, Libre Office, diverse Browser, Thunderbird, …

Dadurch “geerbt” alle MS Visual C++ redistributables von 2005 bis 2015 meist in 32 und 64 bit.
Die genannte Installation behauptet laut Webseite von sich, dass sie mit Win10 pro nicht getestet wurde, wenn ich das richtig sehe.

Erst einmal ein Dank an euch für die Antworten. Ich werde die Sachen testen und nochmals berichten.
Was ich ebenfalls schon probiert hatte, auch ohne Erfolg:

Sobald ich dann aber die Datenbank initialisieren möchte manuell, spuckt er mir den selben Fehler aus wie oben als letztes angehängt:

“C:/develop/postgres/bin/initdb.exe”
but was not the same version as initdb.

Also ich befürchte eher dass irgend eine Dell Software dort interveniert, denn auf zwei Geräten des selben Modells funktioniert es nicht.

EDIT:

Auf meinem Arbeitslappi habe ich Windows Enterprise drauf und dort funktioniert Postgres11 ohne Probleme, konnte das sogar ganz normal in den Ordner Programfiles installieren. Bei meinen Arbeitskollegen die mit ähnlichen Geräten(Lenovo) ausgestattet sind, ebenfalls mit Win-Enterprise bestehen keine Probleme dieser Art.

Vielleicht liegt’s am Virenscanner?

Kannst Du das Verzeichnis c:\Develop\Postgres (und alle Unterverzeichnisse) als Ausnahme hinzufügen, so dass der Virenscanner alle Dateien dort ignoriert?

Virenscanner ist nativ nur der von Windows drauf, und den hatte ich mit der Windows Firewall temporär ausgeschaltet.

Kann eigentlich nicht sein, zur Datenbank ist es nie gekommen. Ich habe derzeit auch keine Version installiert sondern nur wie oben beschrieben dort entpackt und die Schritte versucht. Aber selbst wenn ich in ein anderes Verzeichnis gehe und die oben genannten Versuche starte, kommt immer diese dbinit Fehler.

Wenn ich die cmd aufrufe und dort nur postgres eintippe kommt dort ein Fehler:

C:\Users\Admin>postgres
WARNING: 01000: could not determine encoding for locale “English_Germany.utf8”: codeset is “CPutf8”
LOCATION: pg_get_encoding_from_locale, d:\pginstaller.auto\postgres.windows-x64\src\port\chklocale.c:416
FATAL: XX000: postgres: could not locate matching postgres executable
LOCATION: getInstallationPaths, d:\pginstaller.auto\postgres.windows-x64\src\backend\postmaster\postmaster.c:1456

Wenn ich das mit meinem anderen Lappi versuche, kommt lediglich der Hinweis dass die Serverkonfig nicht zu finden ist.

Offensichtlich hast Du noch irgendwo eine andere Postgres Installation deren “bin” Verzeichnis im Pfad liegt.
Was liefert denn

where initdb

Wenn es da tatsächlich noch irgendwo eine andere Installation gibt, dann entferne das Verzeichnis doch mal aus dem PATH und versuche die Installation nochmal.

Oder versuche die manuellen Schritte (also ohne Installer) wie in meinem ersten Beitrag beschrieben mit absoluten Pfaden, damit eine im PATH liegende Installation nicht dazwischen pfuscht.

Im Übrigen: postgres.exe sollte man nie direkt aufrufen. Starten sollte man den Server immer mit pg_ctl.exe

Das sieht aus als ob Du bei deinem Windows 10 Die Region/Locale Einstellungen auf UTF-8 (BETA-Feature) eingestellt hat.
Wenn dem so ist, mach es wieder aus. Es gibt eine ganze Reihe Programme die damit nicht zurecht kommen, ink. MS-SQL-Server.

Noch mal zu initdb. Das einzige was dieses Ding macht, ist eine Ordner/Dateistruktur zu erstellen.
Wie es ausschaut, hast Du deine Installation ja nicht mal unter C:\Program Files*.* liegen, sondern C:\ irgendwas,
also liegt es definitiv nicht an fehlenden Dateirechten.

Mach mal foldendes. Gehe mit Adminrechten in deinen Postgres Ordner und gebe vorher chcp 1252 + ENTER ein und dann
SET PGDATA=C:\DeinPostgres\DATA Verzeichnis an. Benenne den DATA Ordner um oder lösche ihn, denn Du musst ja nichts
sichern wenn Du eine Neuinstallation durchführst. Schau mal ob initdb.exe jetzt vernünftig durchläuft.

Neben dem grafischen Installer von BigSQL gibt es ja auch noch die Kommandozeilen Version, die wesentlich “lokaler” arbeitet, vielleicht funktioniert’s ja mit der:

c:\temp>powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('http://s3.amazonaws.com/pgcentral/install.ps1'))"

Downloading BigSQL PGC 4.0.7 ...

Unpacking ...

Setting REPO to https://s3.amazonaws.com/pgcentral

Updating Metadata

--- New components & extensions released in the last 30 days ---
Category   | Component | Version  | ReleaseDt  | Status
PostgreSQL   pg10        10.7-1     2019-02-14   not installed
PostgreSQL   pg11        11.2-1     2019-02-14   not installed
PostgreSQL   pg94        9.4.21-1   2019-02-14   not installed
PostgreSQL   pg95        9.5.16-1   2019-02-14   not installed
PostgreSQL   pg96        9.6.12-1   2019-02-14   not installed


---------- Components available to install or update ------------
Category     | Component | Version  | ReleaseDt  | Status | Updates
PostgreSQL     pg10        10.7-1     2019-02-14
PostgreSQL     pg11        11.2-1     2019-02-14
PostgreSQL     pg94        9.4.21-1   2019-02-14
PostgreSQL     pg95        9.5.16-1   2019-02-14
PostgreSQL     pg96        9.6.12-1   2019-02-14
Applications   pgadmin3    1.23.0b    2017-06-08
Frameworks     perl5       5.20.3.3   2016-03-14
Frameworks     python2     2.7.11-4   2016-01-18
Frameworks     python37    3.7.1-2    2018-10-27
Frameworks     tcl86       8.6.4-1    2016-03-11


BigSQL PGC installed.
  Try 'bigsql\pgc help' to get started.

c:\temp>cd bigsql
c:\temp\bigsql>pgc install pg11
  ['pg11']
Get:1 https://s3.amazonaws.com/pgcentral pg11-11.2-1-win64
 Unpacking pg11-11.2-1-win64.tar.bz2
c:\temp\bigsql>pgc init pg11

## Initializing pg11 #######################

Superuser Password [password]:
Confirm Password:
Setting directory and file permissions.
Bearbeitete Datei: c:\temp\bigsql\data\pg11
1 Dateien erfolgreich verarbeitet, bei 0 Dateien ist ein Verarbeitungsfehler aufgetreten.
setting permission to log dir
Bearbeitete Datei: c:\temp\bigsql\data\logs\pg11
1 Dateien erfolgreich verarbeitet, bei 0 Dateien ist ein Verarbeitungsfehler aufgetreten.

Initializing Postgres DB with:
  c:\temp\bigsql\pg11\bin\initdb -U postgres -A md5 -E UTF8 --no-locale -D "c:\temp\bigsql\data\pg11" --pwfile="c:\temp\bigsql\pg11\.pgpass" > "c:\temp\bigsql\data\logs\pg11\install.log" 2>&1

Using PostgreSQL Port 5433

Password securely remembered in the file: C:\Users\someusername\AppData\Roaming\postgresql\pgpass.conf

to load this postgres into your environment, run the env file:
    c:\temp\bigsql\pg11\pg11-env.bat

c:\temp\bigsql>pg11\pg11-env.bat

c:\temp\bigsql>pgc start pg11
pg11 starting on port 5433

c:\temp\bigsql>psql -U postgres
psql (11.2)
WARNING: Console code page (437) differs from Windows code page (1252)
         8-bit characters might not work correctly. See psql reference
         page "Notes for Windows users" for details.
Type "help" for help.

postgres@localhost/postgres> \q

c:\temp\bigsql>pgc stop pg11
pg11 stopping
c:\temp\bigsql>