PostgreSQL ne parvient pas à démarrer sur Windows XP
Je suis tente de mettre en place un Test de Windows XP Agent Ruby on Rails à l'encontre d'une Base de données PostgreSQL. J'ai installé PostgreSQL 9.2 pour Windows, avec les paramètres par défaut. Cependant, lorsque je tente de démarrer le service à partir du Panneau de configuration de Service, le message d'erreur suivant s'affiche(irrelevantly de l'Utilisateur qui je tente de la mettre à l'):
The postgres-9.2 -PostgreSQL Server 9.2 service on Local Computer started and then stopped. Some services
stop automatically if they have work to do, for example, the Performance Logs and Alerts service.
Si je tente de le lancer depuis la ligne de commande (si de cmd.exe ou git bash n'a pas d'importance avec):
E:\PostgreSQL\9.2\bin\pg_ctl.exe start -D E:\PostgreSQL\9.2\data
Il dit:
server starting
Toutefois, il ne pourra pas démarrer (rake db:migrate fera rapport au serveur de ne pas en cours d'exécution, le postgresql processus est manquant dans le Gestionnaire des Tâches, le Service est répertorié comme vers le bas dans la Liste Service, et
E:\PostgreSQL\9.2\bin\pg_ctl.exe stop -D E:\PostgreSQL\9.2\data
Fera rapport
pg_ctl: PID file "E:/PostgreSQL/9.2/data/postmaster.pid" does not exist Is server running?
Tout en essayant de démarrer un serveur par le biais de pg_ctl:
E:\PostgreSQL\9.2\bin\pg_ctl.exe runservice -D E:\PostgreSQL\9.2\data
Échoue avec:
pg_ctl: could not start service PostgreSQL: error code 1063
EDIT:
le contenu de pg_hba:
# TYPE DATABASE USER ADDRESS METHOD
local all all all trust
# IPv4 local connections:
host all all all trust
host all all 127.0.0.1/32 trust
# IPv6 local connections:
#host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication all all trust
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
Signant pg_log que par les commentaires ci-dessous:
2012-10-28 22:47:44 PDT LOG: local connections are not supported by this build
2012-10-28 22:47:44 PDT CONTEXT: line 78 of configuration file "E:/PostgreSQL/9.2/data/pg_hba.conf"
2012-10-28 22:47:44 PDT FATAL: could not load pg_hba.conf
Ligne 78 est
local all all all trust
La même erreur se produit lors de l'exécution en tant que service (que ce soit par le biais de pg_ctl runservice ou à partir du panneau de configuration des services). Cependant pg_ctl start démarre maintenant postgres sans incident.
Je vais aller avec "assez bon"
PS: Les entrées du Journal des Événements simplement de dire "expiration du délai d'attente pour le démarrage du serveur"
- Regarder dans
E:\PostgreSQL\9.2\data\pg_log
. Ce qui ne les logs du serveur dire? Également examiner l'Observateur d'Événements (dans les Outils d'Administration du Panneau de configuration), après avoir essayé de démarrer le serveur en tant que service. Rien dans les journaux des événements? - Juste parce que j'ai passé 5 heures à essayer de comprendre problème similaire: Si
pg_hba.conf
IPv6 est la règle et le système (par exemple, WinXP) ne prend pas en charge le service ne démarre pas, cependant, il est toujours possible de démarrer postgres comme une application viapg_ctl
. Retrait de l'IPv6 règle résout le problème.
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR Après des modifications à la question:
De supprimer les lignes de
pg_hba.conf
qui commencent parlocal
. Ils se rapportent à des connexions socket UNIX, qui PostgreSQL ne prend pas en charge. Alors, à moins que quelque chose est faux aussi, vous devriez être en mesure de démarrer PostgreSQL. Plus probable que vous avez copié et collé unpg_hba.conf
à partir d'un site qui parle de PostgreSQL sur Mac OS X ou Linux, oùlocal
connexions sont pris en charge.Si Pg refuse toujours de démarrer, après la fixation d'
pg_hba.conf
, vérifiez les journaux à nouveau et voir ce que d'autre, c'est de se plaindre.Par la façon dont, en général, je ne recommande pas d'essayer d'exécuter PostgreSQL à la fois comme un service et via
pg_ctl
à partir du même répertoire de données. Vous êtes susceptibles de la terre avec les systèmes de fichiers des autorisations de problèmes qui sont difficiles et ennuyeux à résoudre, en particulier sur Windows.En plus de @mvp des suggestions, il est possible que vous essayez de démarrer PostgreSQL sous un utilisateur qui est un membre du groupe Administrateurs. Ce n'est pas autorisé et sera un échec. Je suis en désaccord avec cette politique, mais c'est la façon dont il est à l'heure actuelle.
Par défaut 9.2 est configuré pour s'exécuter sous le service réseau, de sorte que ne devrait pas être un problème. Si vous l'avez configuré pour s'exécuter sous un compte d'utilisateur différent ce pourrait être votre problème, et il pourrait être le problème lors de l'exécution manuellement.
Il est plus probable que lorsque vous le démarrez manuellement, vous n'avez tout simplement pas de système de fichiers des autorisations pour le répertoire de données.
BTW, si
E:\
est en FAT32, il est votre problème. FAT32 n'est pas pris en charge. Vous devez utiliser NTFS.Plutôt que de coup de poignard dans le noir, vous devriez vraiment être regardant les journaux du serveur
E:\PostgreSQL\9.2\data\pg_log
et l'observateur d'événements pour voir quelle est la cause de l'échec du démarrage.pg_hba.conf
est en panne; voir à la mise à jour de réponsepg_hba.conf
, mais je dirais que votre répertoire de données des autorisations sont probablement arrosé de tentatives pour démarrer le serveur en tant que votre propre compte d'utilisateur, comme @ mvp suggéré.Vous devez avoir l'autorisation de problème. PostgreSQL sous windows veut exécuter en tant qu'un utilisateur postgres. Programme d'installation va automatiquement créer une et de l'attribuer nouveau mot de passe.
Il y a peu de solutions à ce. Si vous venez d'installer cette base de données, la solution la plus simple est de désinstaller Postgres, supprimer local utilisateur postgres (via
control userpasswords2
) et enfin installer Postgres nouveau (assurez-vous que vous avez les droits d'admin sur cette zone). Bonne chance!