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

15

Les deux C:\PostgreSQLet C:\PostgreSQL\dataont un postgresutilisateur 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. CibleC:\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?

Larry Eitel
la source
voir le journal d'installation (il devrait être quelque part sur le disque, probablement dans% TEMP%)
filiprem
Veuillez consulter la sortie de journal appropriée.
Larry Eitel
L' utilisateur postgres Windows dispose-t- il de privilèges de lecture et d'écriture complets sur C: \ PostgreSQL \ data?
a_horse_with_no_name
Oui, et selon une suggestion ailleurs, j'ai donné aux utilisateurs des autorisations de modification sur ce répertoire.
Larry Eitel
@LarryEitel: mais " Impossible de s'assurer que le répertoire de données est accessible (C: \ PostgreSQL \ data) " semble indiquer le contraire.
a_horse_with_no_name

Réponses:

17

J'ai eu le même problème lors de l'installation de 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
Imraan
la source
Merci pour votre retour. Malheureusement, j'ai depuis déplacé ce projet vers Mongodb. Je ne suis pas en mesure pour le moment de confirmer votre suggestion.
Larry Eitel
Je veux confirmer que la solution a fonctionné pour moi. Configuration: Postgres 9.1 64 bits et PostGIS 2.0.1 x64
Chris
1
Il s'agit d'un problème bien connu avec la réinstallation de PostgreSQL qui fonctionne en tant que service, et j'ai personnellement rencontré la situation que cette réponse résout. Le programme d'installation laisse un compte lors de la suppression ou de la mise à niveau, mais la 2e installation n'en tient pas compte; la disparité des informations d'identification qui en résulte entre les installations crée des ravages. La réponse la plus courante est celle donnée par Imraan; désinstaller, supprimer le compte incriminé, puis réinstaller.
Avery Payne
@AveryPayne: alternativement: mémorisez le mot de passe correct pour le compte de service postgres. J'ai beaucoup installé Postgres sur des systèmes où il était déjà installé et je n'ai jamais eu de problème avec un compte de service existant. La formulation dans le programme d'installation aurait pu être améliorée cependant (avec 9.2 Postgres n'utilise plus de compte explicite btw)
a_horse_with_no_name
Gardez à l'esprit que, pour l'étape 4, cela administratorsdépend des paramètres régionaux. Par exemple, dans PT-BR c'est le cas administradores. Et, à l'étape 5, "power users"c'est "usuários avançados".
GuiRitter
1

Dans mon cas (comme je l'ai vu à partir du 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é donné dans le environnement variable chemin des fenêtres.
J'ai donc ouvert une invite de commande, tapé set PATH=%PATH%;c:\windows\system32et exécuté le programme d'installation à partir de l'invite de commande elle-même. Ça a marché! :)

Nav
la source
1

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 entièrement 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.

NimChimpsky
la source
1

J'ai eu le même message d'erreur lors de la tentative d'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, 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é.

marque
la source
0

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.

user37408
la source