Vous n'êtes pas identifié(e).

#1 25/05/2016 11:17:13

laetty
Membre

Connection à distant postgresql

Bonjour,
J'ai un petit problème j'arrive pas à me connecter à ma base de donnée postgresql et je ne parviens pas à trouver la  solution...

Bon voilà, j'ai un postgresql installé sur mon ordinateur (ordinateur  A) sur un serveur linux. Je voudrais me connecter à cette base depuis un post windows 7(ordinateur B) ,qui se trouve sur le même réseau que l'ordinateur A.

Pour ça, j'ai commencé par modifier les dossiers (sur ordinateur  A) postgresql.conf: listen_address = ' * '
pg_hba.conf: host all postgres 192.168.10.(ip  de l'ordinateur B)/0 trust
Pour me connecter à cette base j'utilise un logiciel TALEND qui permet d'extraire les données des la base postgreql vers une base qui se trouve sur l'ordinateur B?

Pour me connecter dans le talend,les paramètres de connexion est la suivante: 
user:postgres
mot de passe:*****
server:192.168.10.(ip computerA)
port:5432
DB:db_name

Et j'ai cet erreur:Echec de la connexion Vous devez modifier les paramètres de la base de données.
  java.lang.RuntimeException: org.postgresql.util.PSQLException: Connexion refusée. Vérifiez que le nom de machine et le port sont corrects et que postmaster accepte les connexions TCP/IP.

Merci d'avance.

Hors ligne

#2 25/05/2016 11:21:39

ruizsebastien
Membre

Re : Connection à distant postgresql

Vérifiez que vos firewall (ordinateur a et b) ne sont pas actifs.

Si vous pouvez, vérifiez que les processus postgres sur ordinateur a sont bien présents.
Dans le postgresql.conf d'ordinateur a, que vaut le parametre "port" ?


Cordialement,

Sébastien.

Hors ligne

#3 25/05/2016 14:02:46

laetty
Membre

Re : Connection à distant postgresql

les pare-feu sont désactivé
Comme l'ordinateur est un serveur il tourne tout les jours et il y a des application qui l'utilisent
le port est 5432 mais il est commenté

Hors ligne

#4 25/05/2016 14:10:00

ruizsebastien
Membre

Re : Connection à distant postgresql

pouvez vous nous copier le contenu du pg_hba.conf entier du serveur ?
(le pg_hba.conf qui correspond à la requête : select  name , setting from pg_settings where  name like '%hba%';)
et pouvez vous me donner le résultat de la requête suivante :
select  name , setting from pg_settings where  name like '%listen_%';

Dernière modification par ruizsebastien (25/05/2016 14:14:26)


Cordialement,

Sébastien.

Hors ligne

#5 25/05/2016 14:26:13

laetty
Membre

Re : Connection à distant postgresql

pg_hba.conf du serveur

# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the
# PostgreSQL documentation for a complete description
# of this file.  A short synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access.  Records take one of these forms:
#
# local      DATABASE  USER  METHOD  [OPTION]
# host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
# hostssl    DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
# hostnossl  DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain socket,
# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", a database name, or
# a comma-separated list thereof.
#
# USER can be "all", a user name, a group name prefixed with "+", or
# a comma-separated list thereof.  In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names from
# a separate file.
#
# CIDR-ADDRESS specifies the set of hosts the record matches.
# It is made up of an IP address and a CIDR mask that is an integer
# (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that specifies
# the number of significant bits in the mask.  Alternatively, you can write
# an IP address and netmask in separate columns to specify the set of hosts.
#
# METHOD can be "trust", "reject", "md5", "crypt", "password",
# "krb5", "ident", "pam" or "ldap".  Note that "password" sends passwords
# in clear text; "md5" is preferred since it sends encrypted passwords.
#
# OPTION is the ident map or the name of the PAM service, depending on METHOD.
#
# Database and user names containing spaces, commas, quotes and other special
# characters must be quoted. Quoting one of the keywords "all", "sameuser" or
# "samerole" makes the name lose its special character, and just match a
# database or username with that name.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal.  If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect.  You can use
# "pg_ctl reload" to do that.

# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL listen
# on a non-local interface via the listen_addresses configuration parameter,
# or via the -i or -h command line switches.
#



# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# On autorise le user local postgres a faire tout ce qu'il veut (socket unix uniquement)
# sans aucune saisie de mot de passe
local   all         postgres                               ident sameuser

# On autorise les connections locales des autres users via la saisie d'un mot de passe
local   all         all                                    md5
host    all         all         127.0.0.1/32               md5

Hors ligne

#6 25/05/2016 14:28:50

ruizsebastien
Membre

Re : Connection à distant postgresql

remplacez la derniere ligne :
host    all         all         127.0.0.1/32               md5
par celle ci :
host    all         all         0.0.0.0         0.0.0.0          md5

+ arrêt/relance de l'instance postgresql


Cordialement,

Sébastien.

Hors ligne

#7 25/05/2016 14:42:06

laetty
Membre

Re : Connection à distant postgresql

j'ai toujours la même erreur

Hors ligne

#8 25/05/2016 14:46:30

ruizsebastien
Membre

Re : Connection à distant postgresql

avez-vous bien fait ce que j'ai dis (supprimer et remplacer la dernière ligne et arrêt/relance de l'instance) ?


Cordialement,

Sébastien.

Hors ligne

#9 25/05/2016 14:50:08

laetty
Membre

Re : Connection à distant postgresql

oui je l'ai bien fait

Hors ligne

#10 25/05/2016 15:22:18

ruizsebastien
Membre

Re : Connection à distant postgresql

êtes vous sûr de bien modifier le pg_hba.conf qui correspond à la requête : select  name , setting from pg_settings where  name like '%hba%';)
et pouvez vous me donner le résultat de la requête suivante :
select  name , setting from pg_settings where  name like '%listen_%';


Cordialement,

Sébastien.

Hors ligne

#11 26/05/2016 09:01:33

laetty
Membre

Re : Connection à distant postgresql

êtes vous sûr de bien modifier le pg_hba.conf

oui jl'ai bien modifier

pouvez vous me donner le résultat de la requête suivante :
select  name , setting from pg_settings where  name like '%listen_%';

name       |  setting
------------------+-----------
listen_addresses | localhost
(1 row)

Hors ligne

#12 26/05/2016 09:32:00

ruizsebastien
Membre

Re : Connection à distant postgresql

dans le postgresql.conf, il faut mettre le paramètre listen_addresses='*' puis relancer l'instance pour que ce soit pris en compte.
Une fois que c'est fait pouvez vous refaire la requête : select  name , setting from pg_settings where  name like '%listen_%';


Cordialement,

Sébastien.

Hors ligne

#13 26/05/2016 09:44:11

laetty
Membre

Re : Connection à distant postgresql

# - Connection Settings -

listen_addresses = '*'		 	# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost', '*' = all
					# (change requires restart)
#port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)

voici une portion du fichier postgresql.conf je ne l'a pas encore modifier et quand je fais la requête select  name , setting from pg_settings where  name like '%listen_%';j'ai le résultat suivante:

name       |  setting
------------------+-----------
listen_addresses | localhost
(1 row)

Hors ligne

#14 26/05/2016 09:56:47

ruizsebastien
Membre

Re : Connection à distant postgresql

vérifiez si dans votre postgresql.conf vous n'auriez pas listen_addresses plusieurs fois.
Et vérifiez aussi qu'il s'agit  du bon postgresql.conf que vous modifiez : select  name , setting from pg_settings where  name like '%config_%';

Dernière modification par ruizsebastien (26/05/2016 10:08:06)


Cordialement,

Sébastien.

Hors ligne

#15 26/05/2016 10:08:15

laetty
Membre

Re : Connection à distant postgresql

il existe qu'un seul listen_addresses,voici le fichier postgresql.conf complet

# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The '=' is optional.)  White space may be used.  Comments are introduced
# with '#' anywhere on a line.  The complete list of option names and
# allowed values can be found in the PostgreSQL documentation.  The
# commented-out settings shown in this file represent the default values.
#
# Please note that re-commenting a setting is NOT sufficient to revert it
# to the default value, unless you restart the server.
#
# Any option can also be given as a command line switch to the server,
# e.g., 'postgres -c log_connections=on'.  Some options can be changed at
# run-time with the 'SET' SQL command.
#
# This file is read on server startup and when the server receives a
# SIGHUP.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload". Some
# settings, which are marked below, require a server shutdown and restart
# to take effect.
#
# Memory units:  kB = kilobytes MB = megabytes GB = gigabytes
# Time units:    ms = milliseconds s = seconds min = minutes h = hours d = days


#---------------------------------------------------------------------------
# FILE LOCATIONS
#---------------------------------------------------------------------------

# The default values of these variables are driven from the -D command line
# switch or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir'		# use data in another directory
					# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
#ident_file = 'ConfigDir/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 = '(none)'		# write an extra PID file
					# (change requires restart)


#---------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#---------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'		 	# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost', '*' = all
					# (change requires restart)
#port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)
# Note: increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).  You
# might also need to raise shared_buffers to support more connections.
#superuser_reserved_connections = 3	# (change requires restart)
#unix_socket_directory = ''		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# octal
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security & Authentication -

#authentication_timeout = 1min		# 1s-600s
#ssl = off				# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos
#krb_server_keyfile = ''		# (change requires restart)
#krb_srvname = 'postgres'		# (change requires restart)
#krb_server_hostname = ''		# empty string matches any keytab entry
					# (change requires restart)
#krb_caseins_users = off		# (change requires restart)

# - TCP Keepalives -
# see 'man 7 tcp' for details

#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default
#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
#tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


#---------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#---------------------------------------------------------------------------

# - Memory -

shared_buffers = 200MB			# min 128kB or max_connections*16kB
					# (change requires restart)
#temp_buffers = 8MB			# min 800kB
#max_prepared_transactions = 5		# can be 0 or more
					# (change requires restart)
# Note: increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
work_mem = 64MB				# min 64kB
maintenance_work_mem = 512MB		# min 1MB
#max_stack_depth = 2MB			# min 100kB

# - Free Space Map -
max_fsm_pages = 1220232		# min max_fsm_relations*16, 6 bytes each
					# (change requires restart)
max_fsm_relations = 2000		# min 100, ~70 bytes each
					# (change requires restart)

# - Kernel Resource Usage -

#max_files_per_process = 1000		# min 25
					# (change requires restart)
#shared_preload_libraries = ''		# (change requires restart)

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 200			# 0-1000 milliseconds
#vacuum_cost_page_hit = 6		# 0-10000 credits
#vacuum_cost_page_miss = 10		# 0-10000 credits
#vacuum_cost_page_dirty = 20		# 0-10000 credits
#vacuum_cost_limit = 100		# 0-10000 credits

# - Background writer -

#bgwriter_delay = 200ms			# 10-10000ms between rounds
#bgwriter_lru_percent = 1.0		# 0-100% of LRU buffers scanned/round
#bgwriter_lru_maxpages = 5		# 0-1000 buffers max written/round
#bgwriter_all_percent = 0.333		# 0-100% of all buffers scanned/round
#bgwriter_all_maxpages = 5		# 0-1000 buffers max written/round


#---------------------------------------------------------------------------
# WRITE AHEAD LOG
#---------------------------------------------------------------------------

# - Settings -

fsync = on				# turns forced synchronization on or off
#wal_sync_method = fsync		# the default is the first option
					# supported by the operating system:
					#   open_datasync
					#   fdatasync
					#   fsync
					#   fsync_writethrough
					#   open_sync
full_page_writes = on			# recover from partial page writes
wal_buffers = 1MB			# min 32kB
					# (change requires restart)
#commit_delay = 0			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

checkpoint_segments = 32		# in logfile segments, min 1, 16MB each
#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_warning = 30s		# 0 is off

# - Archiving -

#archive_command = ''		# command to use to archive a logfile segment
#archive_timeout = 0		# force a logfile segment switch after this
				# many seconds; 0 is off


#---------------------------------------------------------------------------
# QUERY TUNING
#---------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
random_page_cost = 3.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
effective_cache_size = 1024MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0

# - Other Planner Options -

#default_statistics_target = 10		# range 1-1000
constraint_exclusion = on
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit
					# JOINs


#---------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#---------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'		# Valid values are combinations of
					# stderr, syslog and eventlog,
					# depending on platform.

# This is used when logging to stderr:
redirect_stderr = on			# Enable capturing of stderr into log
					# files
					# (change requires restart)

# These are only used if redirect_stderr is on:
log_directory = '/var/log/pgsql'		# Directory where log files are written
					# Can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # Log file name pattern.
					# Can include strftime() escapes
#log_truncate_on_rotation = off # If on, any existing log file of the same
					# name as the new log file will be
					# truncated rather than appended to. But
					# such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation. Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 to
					# disable.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will
					# happen after that much log
					# output.  0 to disable.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'


# - When to Log -

client_min_messages = notice		# Values, in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

log_min_messages = warning		# Values, in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_error_verbosity = default		# terse, default, or verbose messages

#log_min_error_statement = error	# Values in order of increasing severity:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   fatal
					#   panic (effectively off)

log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations.

silent_mode = on			# DO NOT USE without syslog or
					# redirect_stderr
					# (change requires restart)

# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = off
#log_connections = off
#log_disconnections = off
#log_duration = off
log_line_prefix = '%t [%p]: [%l-1] '			# Special values:
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = PID
					#   %t = timestamp (no milliseconds)
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %c = session id
					#   %l = session line number
					#   %s = session start timestamp
					#   %x = transaction id
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_statement = 'all'			# none, ddl, mod, all
#log_hostname = off


#---------------------------------------------------------------------------
# RUNTIME STATISTICS
#---------------------------------------------------------------------------

# - Query/Index Statistics Collector -

stats_command_string = on
update_process_title = on
stats_start_collector = on		# needed for block or row stats
stats_block_level = on
stats_row_level = on
stats_reset_on_server_start = on	# (change requires restart)


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#---------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#---------------------------------------------------------------------------

autovacuum = off			# enable autovacuum subprocess?
					# 'on' requires stats_start_collector
					# and stats_row_level to also be on
#autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 500	# min # of tuple updates before
					# vacuum
#autovacuum_analyze_threshold = 250	# min # of tuple updates before
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of rel size before
					# vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of rel size before
					# analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = -1	# default vacuum cost delay for
					# autovacuum, -1 means use
					# vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#---------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#---------------------------------------------------------------------------

# - Statement Behavior -

search_path = '"$user",bd,bdmo,bdmf,bdmp,bdap,synergie,meteomed,edf,applix,postgis,local,public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses
					# the default
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#statement_timeout = 0			# 0 is disabled
#vacuum_freeze_min_age = 100000000

# - Locale and Formatting -

datestyle = 'iso, mdy'
#timezone = unknown			# actually, defaults to TZ
					# environment setting
#timezone_abbreviations = 'Default'     # select the set of available timezone
					# abbreviations. Currently, there are
					#   Default
					#   Australia
					#   India
					# However you can also create your own
					# file in share/timezonesets/.
#extra_float_digits = 0			# min -15, max 2
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb -- they might be changed
lc_messages = 'C'			# locale for system error message
					# strings
lc_monetary = 'C'			# locale for monetary formatting
lc_numeric = 'C'			# locale for number formatting
lc_time = 'C'				# locale for time formatting

# - Other Defaults -

#explain_pretty_print = on
#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#---------------------------------------------------------------------------
# LOCK MANAGEMENT
#---------------------------------------------------------------------------

#deadlock_timeout = 1s
max_locks_per_transaction = 512		# min 10
					# (change requires restart)
# Note: each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.


#---------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#---------------------------------------------------------------------------

# - Previous Postgres Versions -

#add_missing_from = off
#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#standard_conforming_strings = off
#regex_flavor = advanced		# advanced, extended, or basic
#sql_inheritance = on

# - Other Platforms & Clients -

#transform_null_equals = off


#---------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#---------------------------------------------------------------------------

#custom_variable_classes = ''		# list of custom variable class names

Hors ligne

#16 26/05/2016 10:21:41

ruizsebastien
Membre

Re : Connection à distant postgresql

Et vérifiez aussi qu'il s'agit  du bon postgresql.conf que vous modifiez : select  name , setting from pg_settings where  name like '%config_%';


Cordialement,

Sébastien.

Hors ligne

#17 26/05/2016 11:18:11

rjuju
Administrateur

Re : Connection à distant postgresql

Si vous êtes en 9.4 ou plus, il s'agit peut être d'une commande ALTER SYSTEM qui aurait été effectuée. Vous pouvez vérifier dans le fichier postgresql.auto.conf

Hors ligne

#18 27/05/2016 10:59:02

laetty
Membre

Re : Connection à distant postgresql

 vérifiez aussi qu'il s'agit  du bon postgresql.conf que vous modifiez

je crois que c'est le bon postgresql.conf que j'ai modifier.
je suis sur postgresql 8.2.6

Hors ligne

#19 03/06/2016 08:49:52

yohmartin
Membre

Re : Connection à distant postgresql

Avez vous mis un mot de passe a l'utilisateur postgres?

Hors ligne

#20 03/06/2016 13:15:40

laetty
Membre

Re : Connection à distant postgresql

oui il y a un mot de passe pour  l'utilisateur postgres

Hors ligne

Pied de page des forums