web-dev-qa-db-fra.com

PostgreSQL: l'initialisation du cluster de base de données a échoué

Tous les deux C:\PostgreSQL et C:\PostgreSQL\data possède postgres utilisateur avec un accès complet et des droits d'administrateur.

J'ai exécuté postgresql-9.1.2-1-windows.exe à partir de l'utilisateur postgres en tant qu'administrateur. Cible C:\PostgreSQL

Chaque fois que j'essaye, j'obtiens "L'initialisation du cluster de base de données a échoué".

Des questions

  • Est-il OK de tout exécuter sans être un service Windows?
  • Existe-t-il une solution de rechange à installer en tant que service Windows?

J'essaie de configurer PostGIS pour qu'il fonctionne avec GeoDjango.

J'ai pu installer manuellement PostGIS. Nouveau sur PostgreSQL et j'ai une crise de confiance sur tout cela. Venant de MySQL à PostgreSQL pour la première fois.


Sortie de journal pertinente de C:\Users\Larry\AppData\Local\Temp\install-postgresql.log:

WScript.Network initialized...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C: (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL\data (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can write to the data directory (using icacls) to  Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Failed to ensure the data directory is accessible (C:\PostgreSQL\data)
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb

Suggestions?

16
Larry Eitel

J'ai eu le même problème lors de l'installation de la 9.1.4 sur Windows 7. J'ai réussi à trouver une solution en ligne qui fonctionnait .

Les étapes que j'ai suivies sont:

  1. Désinstaller PostgreSQL
  2. Supprimez l'utilisateur postgres s'il existe toujours.

    Net User postgres /delete
    
  3. Créez l'utilisateur postgres avec un mot de passe dont vous vous souviendrez

    Net User /add postgres <password>
    
  4. Ajouter l'utilisateur postgres au groupe Administrateurs

    net localgroup administrators postgres /add
    
  5. Ajoutez l'utilisateur postgres au groupe Utilisateurs avec pouvoir

    net localgroup "power users" postgres /add
    
  6. Exécutez une fenêtre de commande en tant qu'utilisateur postgres

    runas /user:postgres cmd.exe
    
  7. Exécutez le fichier d'installation à partir de la fenêtre de commande.

    C:\Download\postgresql-9.1.4-1-windows.exe
    

    Cela devrait exécuter l'installation avec succès.

  8. Supprimez l'utilisateur postgres du groupe Administrateurs.

    net localgroup administrators postgres /delete
    
19
Imraan

Dans mon cas (comme je l'ai vu dans le fichier postgresql.log dans le dossier% temp% de Windows), c'est parce que le programme d'installation n'a pas pu trouver doskey.exe même si le chemin d'accès au dossier c:\windows\system32 a été indiqué dans le dossier environnement variable chemin des fenêtres.
J'ai donc ouvert une invite de commande, tapée set PATH=%PATH%;c:\windows\system32 et a exécuté le programme d'installation à partir de l'invite de commandes elle-même. Ça a marché! :)

1
Nav

Rien de ce qui précède n'a fonctionné pour moi. Je n'avais aucune utilité postgres.

J'ai donc tout supprimé/désinstallé. Ran cmd en tant qu'administrateur.

Ensuite, exécutez le programme d'installation à partir de la ligne de commande (en tant qu'administrateur) et sélectionnez un emplacement complètement nouveau pour le répertoire de données.

J'ai maintenant réinstallé avec succès postgres, après une demi-journée de pokery jiggery.

1
NimChimpsky

J'ai eu le même message d'erreur lors de l'installation de 9.2.4. Mon problème était dû au fait que même si le serveur Win2k8 avait% SYSTEMROOT%\system32 dans le chemin d'accès, aucun programme ne pouvait "voir" quoi que ce soit dans C:\Windows\system32. Le programme d'installation utilise fortement icacls.exe pendant la routine d'initialisation. Depuis que mon chemin a été foiré, l'installateur a bombardé.

Une fois que j'ai explicitement ajouté C:\Windows\system32 à la variable d'environnement Path du SYSTEM et relancé le programme d'installation en tant qu'administrateur, tout a bien fonctionné.

1
Mark

Ce problème est lié à l'autorisation d'écriture sur le dossier. Créez le dossier/les données dans PostgreSQL\9.2 par exemple, et donnez la permission complète à l'utilisateur. Essayez de réinstaller à nouveau.

0
user37408