Ps : y a un tag "résolu" qq part ?
]]>Mais mon pg_hba n'est pas inclus dedans, c'est un fichier à part, mais qui se trouve dans le même répertoire le postgresql.conf personnalisé. Lequel répertoire fait l'objet de la valeur attribuée à include_dir dans le postgresql.conf qui est dans /etc/postgres
Il n'y a donc pas de pg_hba inclus dans aucun des postgresql.conf
Ce qui fait qu'il est bien inclus dedans, d'où votre erreur.
Pour être plus clair, si vous demandez d'inclure tous les fichiers *.conf d'un répertoire et que ce répertoire contient un fichier pg_hba.conf, ou n'importe quel autre fichier avec une extension .conf qui ne correspond pas à ce qu'on peut configurer dans un fichier postgresql.conf cela ne marchera pas.
Si vous tenez vraiment à mettre la totalité des fichiers de configuration au même endroit, utilisez des sous répertoire dédiés pour ne pas inclure des fichiers pg_hba ou autre dans le fichier postgresql.conf.
]]>Dans le fichier postgresql.conf il y a bien le paramètre "hba_file =" que l'on peu renseigner et faire pointer sur n'importe quel fichier de n'importe quel répertoire.
Après je ne sais pas ce que vous voulez dire par
car un fichier pg_hba.conf ne peut pas être inclus dans un fichier postgresql.conf.
Mais mon pg_hba n'est pas inclus dedans, c'est un fichier à part, mais qui se trouve dans le même répertoire le postgresql.conf personnalisé. Lequel répertoire fait l'objet de la valeur attribuée à include_dir dans le postgresql.conf qui est dans /etc/postgres
Il n'y a donc pas de pg_hba inclus dans aucun des postgresql.conf
Il y a juste un répertoire qui regroupe tout les fichiers de config perso : postgresql.conf ; pg_hba.conf ; pg_ident.conf comme stipulé dans la remarque '# include files ending in '.conf'' qui explique à quoi sert include_dir.
# include files ending in '.conf'
donc aussi le pg_hba.conf
]]>LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 100, near token "all"
FATAL: configuration file "/etc/postgresql/9.5/main/postgresql.conf" contains errors
On dirait que votre fichier pg_hba.conf est inclus avec la liste des paramètres et non comme dès règles pour la connexions. Vous avez bien utilisé hba_file ? Ce fichier pg_hba.conf ne serait pas présent dans le répertoire pointé par include_dir, ou pointé directement par include ou include_if_exists ?
]]>le fichier /etc/postgresql/9.5/main/postgresql.conf
#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------
# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.
data_directory = '/var/lib/postgresql/9.5/main' # use data in another directory
# (change requires restart)
hba_file = '/etc/postgresql/9.5/main/pg_hba.conf' # host-based authentication file
# (change requires restart)
ident_file = '/etc/postgresql/9.5/main/pg_ident.conf' # ident configuration file
# (change requires restart)
# If external_pid_file is not explicitly set, no extra PID file is written.
external_pid_file = '/var/run/postgresql/9.5-main.pid' # write an extra PID file
.../...
include_dir = '/var/www/bdd/postgres/conf'
Maintenant /var/www/bdd/postgres/conf/postgresql.conf qui fonctionne avec le même pg_hba.conf ci-dessous contient :
hba_file = '/var/www/bdd/postgres/9.5/pg_hba.conf'
Il ne précise donc pas un répertoire de données particulier.... ce qui suppose que les données sont dans /var/lib/postgresql/9.5/main , et donc pas là où il y a le pg_hba.conf qui fonctionne...
Et le pg_hba.conf qui fonctionne, /var/www/bdd/postgres/9.5/pg_hba.conf contient :
# Database administrative login by Unix domain socket
local all postgres trust
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# 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.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
host all all 109.190.174.178/32 md5
La dernière ligne que j'ai mise est censée me permettre d'accéder au serveur depuis l'extérieur (c'est l'adresse de mon modem, sur lequel j'ai configurer une redirection de port mais ça ne marche pas - c'est un autre problème).
Quand je mets ce fichier dans /var/www/bdd/postgres/conf/ j'obtient les erreurs suivantes :
The PostgreSQL server failed to start. Please check the log output:
LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 85, near token "postgres"
LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 90, near token "all"
LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 92, near token "all"
LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 94, near token "all"
LOG: syntax error in file "/var/www/bdd/postgres/conf/pg_hba.conf" line 100, near token "all"
FATAL: configuration file "/etc/postgresql/9.5/main/postgresql.conf" contains errors
LOG: invalid connection type "haost"
CONTEXT: line 88 of configuration file ...
FATAL: could not load pg_hba.conf
J'ai par contre une erreur de syntaxe si rajoute une erreur dans la configuration paramètre du conf_file dans le postgresql.conf.
Du coup, quel est le message d'erreur complet, quel est le contenu du fichier pg_hba.conf et comment modifiez vous le paramètre hba_file ?
]]>Ce serait bien de modifier la documentation et de le préciser non ?
PS : je fais comment pour clore le sujet ?
]]>