Emplacement de postgresql.conf et pg_hba.conf sur un serveur Ubuntu

16

Où sont les fichiers postgresql.confet pg_hba.confsur un serveur Linux exécutant PostgreSQL 8.4 installés à partir des dépôts Ubuntu?

Oleksandr
la source
4
Le problème vient du fauteuil et du clavier. Cela dépend de la façon dont vous l'avez installé. Avez-vous utilisé le fichier source tar-gz ou avez-vous utilisé l'utilitaire apt. Si vous téléchargez un fichier tar-gzippé et que vous l'avez installé. Le fichier pg_hba.conf n'existe pas encore sauf si vous initialisez votre répertoire de données. Le fichier INSTALL / Readme contient ces informations. Vous trouverez le fichier pg_hba.conf dans ce que vous avez sélectionné comme répertoire de données. Deuxièmement, si vous avez utilisé l'utilitaire apt, vous devriez le trouver dans /etc/postgresql/8.4/main, vous pouvez également faire une «recherche» sur le nom de fichier, mais cela sur tout le disque est consommateur de processeur.
Nikolas Sakic
En installant depuis la source vers l'emplacement d'installation par défaut, vous exécutez ce qui suit: / usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data avant de démarrer postgres et le fichier hba sera créé dans ce répertoire.
Nikolas Sakic

Réponses:

16

La recherche de "pg_hba.conf ubuntu" sur Google vous donne

https://help.ubuntu.com/community/PostgreSQL

qui montre l'emplacement des fichiers.

La documentation indique ce qui suit:

L'authentification client est contrôlée par un fichier de configuration, qui est traditionnellement nommé pg_hba.conf et est stocké dans le répertoire de données du cluster de base de données. (HBA signifie authentification basée sur l'hôte.) Un fichier pg_hba.conf par défaut est installé lorsque le répertoire de données est initialisé par initdb. Il est cependant possible de placer le fichier de configuration d'authentification ailleurs; voir le paramètre de configuration hba_file.

Notez qu'il dit stocké dans le répertoire de données du cluster de base de données et qu'il est possible de le placer ailleurs, via un paramètre de configuration. La documentation officielle ne peut pas vous diriger vers un dossier spécifique car l'emplacement réel dépend à la fois de la façon dont le fabricant du système d'exploitation et l'administrateur de la machine ont configuré PostgreSQL. N'oubliez pas que PostgreSQL prend en charge de nombreux systèmes d'exploitation différents (et distributions Linux).

Comme le montre Neutrino , si vous pouvez accéder à votre serveur via psql, vous pouvez lui dire de vous montrer l'emplacement du fichier.

Aussi, deux conseils:

  1. Locate vous aidera à trouver des fichiers dont vous connaissez le nom mais pas l'emplacement
  2. Les distributions basées sur Debian placent sous / usr / share / doc la documentation sur la façon dont elles configurent les différents paquets par défaut, je suis sûr que vous trouverez sous /usr/share/doc/postgresql-8.4 (ou peut-être juste postgresql) des informations sur les fichiers de configuration. Très utile à lire au cas où ils auraient modifié un comportement standard.
Vinko Vrsalovic
la source
Donnez à un homme un poisson ... bla bla, apprenez à un homme à pêcher ... etc. La bonne façon est de savoir comment les postgres vous disent où se trouve le fichier. Universellement. show hba_file; en psql. Voir la réponse de @ neutrino.
Arnaud Meuret
Si et seulement si vous pouvez accéder à votre instance PostgreSQL en cours d'exécution. Si votre fichier HBA est foiré, vous ne pourrez peut-être pas le faire. J'ai lié à la réponse de Neutrino.
Vinko Vrsalovic
15

Ouvrez une invite de commande.

> psql -U postgres
=# show hba_file;
=# show config_file

Quand ils changent les noms des paramètres de configuration, ou si vous voulez voir autre chose.

=# show all;
Neutrino
la source
3

Peut-être

/etc/postgresql/9.*/main
kmonsoor
la source
2

Comme l'a dit Vinko, l'emplacement dépend de la distribution. Pour ajouter à sa réponse:

Votre logiciel de gestion de packages vous indiquera où sont les fichiers installés par chaque package (par exemple:) dpkg -L postgresql.

Vous pouvez également regarder à l'intérieur du script de démarrage du service (généralement /etc/init.d/postgresql)

leonbloy
la source