J'avais ceci dans mes services Windows:
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w
Il ne finit jamais l'exécution. Mais si je l'ai fait sur le dos Shell:
C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe start -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w
Notez que j'ai seulement changé le "service d'exécution" en "démarrer" et que ça fonctionne très bien.
Une idée?
La commande runervice ne peut être exécutée que par le gestionnaire de services.
afin de réparer mon localhost Windows 7 pour démarrer Postgres en tant que service J'ai utilisé la commande suivante pour démarrer les données
pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" start
Puis vérifié le statut des erreurs
pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" status
si vous obtenez l'erreur 1063, ses autorisations sont plus que probables, j'ai exécuté la commande suivante
cacls "C:\Program Files\PostgreSQL\9.1\data" /E /T /C /G postgres:F
puis relancez le début/le statut, il a montré que tout va bien, mais le gestionnaire de service ne veut pas démarrer le service
Ainsi, dans Services-> postgresql-> options-> ouverture de session, je configure l'ouverture de session en tant que compte système local au lieu de l'utilisateur postgres, et le tour est joué
cela m’est arrivé parce que j’ai mis mon répertoire de données à quelque part que le compte d’utilisateur Windows de Postgres n’a pas accès.
J'ai eu ce problème dans Windows après une panne système. L'exécution de la première commande a montré des données non valides dans C:\Program Files\PostgreSQL\9.1\data\postmaster.pid
. La suppression de ce fichier a fait l'affaire. Référence.
J'ai rencontré le même problème après déplacement manuel des fichiers de données de la base de données } _ (répertoire PG_DATA) sans recréer toutes les autorisations nécessaires.
Voici comment j'ai résolu mon problème:
cacls "c:\path\to\old\pgdata\dir"
cacls "d:\path\to\NEW\pgdata\dir"
Trouvez les différences entre les utilisateurs et/ou les autorisations, puis synchronisez-les.
Nota: J'ai trouvé plus facile d'utiliser Explorer
pour l'étape de synchronisation plutôt que d'utiliser cacls
directement à partir de la ligne de commande.
Si vous avez changé pg_hba.conf , vous avez peut-être manqué quelque part dans le fichier. Par exemple, il doit y avoir CIDR après IP dans ce fichier. Ce doit être comme 192.168.1.100/32
Si vous avez oublié de mettre 32, le serveur ne redémarre pas.
L'enquête sur les journaux de démarrage pourrait être un indice. Pour le cas, le problème se trouve dans pg_hba.conf vous pouvez voir quelque chose comme ceci:
2018-11-13 00:39:34.841 PST [8284] FATAL: could not load pg_hba.conf
2018-11-13 00:39:34.842 PST [8284] LOG: database system is shut down
Vous devez vérifier dans vos fichiers journaux et dans le journal des événements Windows un indice du problème. S'il n'y a rien du tout, vous devez créer quelque chose comme Process Monitor et obtenir une trace de pile où elle est bloquée.
J'ai eu ce problème dans le passé, et c'est que le programme d'installation n'a pas configuré correctement les autorisations pour l'utilisateur sous lequel le service devait s'exécuter.
Installation de PostgreSQL 10 sur Windows 7 (oui l’horloge tourne…). J'ai d'abord essayé la dernière version 11 qui a complètement échoué à installer ... ce n'est pas bon signe pour les utilisateurs de Windows. En tous cas.
Réponse rapide: Modifiez le compte du panneau Services Windows de Réseau en Local.
Détails de mon cas
Au cours de l’installation, j’ai créé/sélectionné un dossier de données dans le dossier du profil de l’utilisateur, car le dossier proposé par défaut dans le dossier du programme ne fonctionnerait pas, et si cela fonctionnait, ce serait une très bonne idée Je ne sais pas s’il est habituel de le faire sous Unix/Linux, mais pour Windows, c’est interdit depuis longtemps).
À la fin (lors du remplissage du cluster de données), j'ai reçu une erreur:
Impossible de charger les modules SQL dans le cluster de base de données
mais l'installation a pu se terminer. J'ai trouvé deux pages sur l'erreur précédente, ici et ici , mais elles ne semblaient pas pertinentes pour mon cas, alors je viens de démarrer pgAdmin et, à gauche, le "navigateur". , vu le serveur n'était pas actif.
J'ai essayé de le démarrer à partir d'ici (il a fallu taper le mot de passe principal), mais il est immédiatement devenu inactif. Alors j'ai essayé d'utiliser le panneau de services Windows pour démarrer "postgresql-x64-10", pas de joie. J'ai copié la commande de ce panneau et je l'ai collée dans une console Windows (cmd.exe) où j'ai finalement reçu ce message.
erreur 1063.
En cherchant, j'ai trouvé cette question connexe et j'étais convaincu qu'il s'agissait d'autorisations.
Solution fonctionnant pour mon cas
Dans le panneau des services, j'ai changé le compte utilisé pour démarrer le service de Service réseau à Système local, comme suggéré dans un commentaire de @AlexanderRios.