11
votes

PostgreSQL 9.2.4 (Windows 7) - Le service ne démarre pas, "Impossible de charger pg_hba.conf"

J'essaie d'obtenir Postgres 9.2.4 pour exécuter en tant que service sous Windows 7. Après avoir installé Postgres, le service fonctionnait bien. Toutefois, après avoir défini Postgres en tant que serveur pour un autre programme, le service a cessé d'exécuter. Lorsque j'essaie de commencer le service maintenant, je reçois un message disant:

"Le PostgreSQL-X64-9.2 - Serveur PostgreSQL 9.2 Service sur local Ordinateur a commencé puis arrêté. Certains services s'arrêtent automatiquement si ils ne sont pas utilisés par d'autres services ou programmes. " P> blockQuote>

Lorsque j'essaie d'exécuter le programme qui doit utiliser le serveur de base de données, je reçois cette erreur: p>

"Un problème a été rencontré tout en essayant de se connecter ou de créer le Base de données de production. Détails: Impossible de se connecter au serveur; Pourrait Ne pas connecter à la prise distante. L'application doit maintenant fermer " p> blockQuote>

J'ai également rencontré cette erreur une fois lors de l'ouverture du même programme: P>

"Un problème a été rencontré tout en essayant de se connecter ou de créer le Base de données de production. Détails: Fatal: Impossible de charger pg_hba.conf le L'application doit maintenant fermer. " P> blockQuote>

J'ai essayé d'exécuter le service connecté en tant que compte système local ainsi que mon propre compte (dans les propriétés du service Postgres) en vain. J'ai aussi essayé de redémarrer mon ordinateur. Après beaucoup de problèmes de dépannage en ligne, j'ai appris qu'une bonne chose à vérifier est le fichier pg_log. Voici le contenu de la dernière entrée pg_log: p> xxx pré>

Il semble avoir des problèmes avec le fichier pg_hba.conf, qui ressemble à ceci: p>

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5


0 commentaires

8 Réponses :


1
votes

Donc, Avertissement rapide, j'exécute maintenant PostgreSQL sur Linux. Mais il y a des années, je l'ai exécuté sous Windows. Et je semble me souvenir de ce problème. Je pense que l'indice est dans cette ligne:

2013-05-29 15:07:00 MDT LOG:  local connections are not supported by this build


0 commentaires

2
votes

Le problème est que cette version Postgres sous Win7 ne peut pas gérer les connexions locales. Je devais travailler avec PG très urgent sur mon ordinateur local, donc je me suis fait trop se soucier de la sécurité, alors peut-être que ce n'est pas la meilleure solution pour un environnement direct. Mais mon PC local c'était suffisant.

J'ai supprimé toutes les autres lignes non motivées de pg_hba.conf et laissez seulement le suivant: xxx

après cela, je pourrais connecter via la ligne de commande.

Je ne comprends pas pourquoi le manuel ne raconte plus sur ce problème. Je suis à peu près sûr que beaucoup de gens ont un problème avec cela.


3 commentaires

Merci, cela a travaillé pour moi, bien que l'ajout de la ligne suivante, y compris mon IP locale (Connexion de la machine virtuelle locale), a fait le tour: Hébergement Tous les 192.168.1.49/32 MD5


C'est la seule solution qui a fonctionné pour moi. Merci!


Utilisation de cette variante IPv4 dans le fichier Conf entraîne la même erreur lorsque j'essaie de démarrer Postgres.



6
votes

J'ai eu ce problème avec PostgreSQL version 8.3 après l'avoir installée sur une machine Windows 7. Initialement, cela fonctionnait normalement, mais tout à coup, il s'est arrêté (probablement après une mise à jour de Windows). De nombreuses provisions ont été apportées à des autorisations changeantes, mais cela ne l'a pas mis au travail. Quelques mois plus tard, j'ai trouvé le problème dans un fichier vide, il devrait en attendre des données. Vérifiez ce chemin: C: \ Fichiers du programme (x86) \ PostgreSQL \ 8.3 \ Data \ (où 8.3 doivent être remplacés sur votre numéro de version). Vérifiez si le fichier postmaster.pid est vide ou non (ouvrez-le à l'aide de WordPad ou de bloc-notes). S'il est vide, renommez-le à _Postmaster.pid (ou autre nom). Aller au menu Démarrer et au type de boîte de commande Services.msc appuyez sur Entrée Localisez l'entrée de la base de données PostgreSQL Double-cliquez dessus Cliquez sur le bouton Démarrer Si le service démarre, un nouveau postmaster.Pid sera créé (avec certaines données) Vous pouvez le vérifier dans le chemin indiqué ci-dessus.

Le bon conseil est venu d'analyser le spectateur d'événements: Ouvrez Windows Explorer, sélectionnez "Ordinateur", cliquez avec le bouton droit de la souris sur "Gérer", sélectionnez "Viewer d'événements", attendez "Résumé des événements administratifs" pour charger, ouvrez le nœud "Erreur", localisez "PostgreSQL" dans la colonne "Source" et doublez dessus. Il y avait la pointe informant les fausses données dans le fichier postmaster.pid.

J'espère que cette information peut vous aider. À votre santé! Ed.


1 commentaires

J'ai un problème différent mais +1 pour le conseil de l'observateur d'événements!



2
votes

J'ai eu le même problème. Ce qui a fonctionné pour moi était:

  1. Ouvrez le fichier PostgreSQL.conf (généralement, il est situé sur C: \ Program Files \ PostgreSQL \ 9.4 \ Data);
  2. Commentaire Le numéro de ligne 147 ( partagé_preload_libries = '$ libdi / plugins / plugin_debugger.dll' )

0 commentaires

10
votes

L'entrée locale n'est pas prise en charge sur les machines Windows. Voir E.20.3.1.3. Authentification .

Rejeter les lignes locales dans pg_hba.conf sur des plates-formes qui ne supportent pas Connexions à socket Unix (Magnus Hagander)

Autrefois, de telles lignes ont été ignorées silencieusement, ce qui pourrait être surprenant. Cela rend le comportement plus comme d'autres cas non pris en charge.

Modifiez votre configuration de: xxx

à: xxx

pour plus d'informations, consultez < Un href = "http://www.postgresql.org/docs/9.2/static/auth-pg-hba-conf.html" rel = "noreferrer"> 19.1. Le fichier pg_hba.conf .


0 commentaires

2
votes

Dans un tel cas, la meilleure chose à faire est d'analyser les journaux du système d'exploitation. Pour Windows, vérifiez la "Viewer de l'événement" -> "Application". Une telle erreur peut se produire pour diverses raisons. Dans mon cas, un postgres était déjà en cours d'exécution. J'ai découvert cette information dans les journaux Windows.


0 commentaires

0
votes

J'avais commis une erreur dans PostgreSql.conf. J'avais fait xxx pré>

où, avant dans ce fichier, il y a, p> xxx pré>

ceci ne peut pas être effectué, et les travaux suivants: P >

max_prepared_transactions = 1600    # zero disables the feature


0 commentaires

1
votes

"Le service sur ordinateur local a commencé puis arrêté, certains services s'arrêtent automatiquement s'il n'y a pas d'utilisation par d'autres services ou programmes."

Maintenant, je vais expliquer comment résoudre le service sur l'ordinateur local démarré, puis arrêté, certains services s'arrêtent automatiquement s'il n'y a pas d'utilisation par d'autres services ou programmes.

Pour résoudre ce problème, nous avons deux manières

première façon

Démarrer -> Run -> Type Services.MSC et cliquez sur le bouton Entrée Vous obtiendrez maintenant tous les services de votre ordinateur après cela, sélectionnez votre service et cliquez avec le bouton droit de la souris et allez à Propriétés

Après cette ouverture, sélectionnez Connexion Onglet dans laquelle Sélectionnez le compte système local, puis cliquez sur OK, votre problème résoudra maintenant


1 commentaires

Merci beaucoup, mec, cela a sauvé ma journée! Creuser un peu plus profondément, au moins dans mon cas, cela faisait le faire avec les autorisations de dossier. Sur le dossier «Data 'd'origine», le service réseau dispose d'une autorisation de contrôle complet, tandis que le dossier créé soit via Windows Explorer ou par PG_BASEBACKUP a un ensemble d'autorisations très différentes (et assez étranges). Ceci est sur une machine Windows Server 2012.