Installation
depuis les paquets binaires du PGDG (Rocky Linux)
Pré-installation
Quelle commande permet d’installer les paquets binaires de
PostgreSQL ?
Le présent TP utilise Rocky Linux en version 8 ou 9. C’est une
distribution communautaire qui se veut succéder au projet CentOS, clone de
Red Hat, interrompu en 2021 .
(Une version plus complète, ainsi que l’utilisation de paquets
Debian, sont traités dans l’annexe « Installation de PostgreSQL depuis
les paquets communautaires ».)
Quelle version est packagée ?
La dernière version stable de PostgreSQL disponible au moment de la
rédaction de ces lignes est la 18.1. Par contre, la dernière version
disponible dans les dépôts dépend de votre distribution. C’est la raison
pour laquelle les dépôts du PGDG sont à
privilégier .
Quels paquets devront également être installés ?
Le paquet libpq doit également être installé. Il est
aussi nécessaire d’installer les paquets llvmjit (pour la
compilation à la volée), qui réclame elle-même la présence du dépôt
EPEL, mais c’est une fonctionnalité optionnelle qui ne sera pas traitée
ici.
Installation
Installer le dépôt en vous inspirant des consignes sur :
https://www.postgresql.org/download/linux/redhat
mais en ajoutant les contribs .
Préciser :
Red Hat Enterprise, Rocky or Oracle version 8 (ou 9 selon le
cas)
x86_64
PostgreSQL 18
Nous allons reprendre ligne à ligne ce script et le compléter.
Se connecter avec l’utilisateur root sur la machine
de formation, et recopier le script proposé par le guide. Dans la
commande ci-dessous, les deux lignes doivent être copiées et
collées ensemble .
# Rocky Linux 8
dnf install -y https://download.postgresql.org\
/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# Rocky Linux 9
dnf install -y https://download.postgresql.org\
/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
Désactiver le module d’installation pour la version PostgreSQL de la
distribution.
Cette opération est nécessaire pour Rocky Linux 8 ou 9.
dnf -qy module disable postgresql
Installer les paquets de PostgreSQL18 : serveur, client,
contribs.
dnf install -y postgresql18-server postgresql18-contrib
# optionnel
dnf install -y postgresql18-llvmjit
Il s’agit respectivement
des binaires du serveur ;
des « contribs » et extensions optionnelles (mais chaudement
conseillées) ;
et du paquet nécessaire à la compilation à la volée (JIT).
Le paquet postgresql18 (outils client) fait partie des
dépendances et est installé automatiquement.
Quel est le chemin des binaires ?
Ils se trouvent dans /usr/pgsql-18/bin/ (chemin propre à
ces paquets) :
clusterdb
createdb
...
postgres
postgresql-18-check-db-dir
postgresql-18-setup
psql
reindexdb
vacuumdb
vacuumlo
Noter qu’il existe des liens dans /usr/bin pointant vers
la version la plus récente des outils en cas d’installation de plusieurs
versions :
/usr/bin/psql: symbolic link to /etc/alternatives/pgsql-psql
file /etc/alternatives/pgsql-psql
/etc/alternatives/pgsql-psql: symbolic link to /usr/pgsql-18/bin/psql
Création de la première instance
Créer une première instance avec les outils de la famille Red Hat.
Les sommes de contrôle (checksums ) sont par défaut activées
avec la version 18.
La création d’une instance passe par un outil spécifique à ces paquets.
Cet outil doit être appelé en tant que root (et non
postgres ).
Optionnellement, on peut ajouter des paramètres d’initialisation à
cette étape. La mise en place des sommes de contrôle est généralement
conseillée pour être averti de toute corruption des fichiers.
Toujours en temps que root :
/usr/pgsql-18/bin/postgresql-18-setup initdb
Initializing database ... OK
L’export est nécessaire pour activer les sommes de
contrôle.
Vérifier ce qui a été fait dans le journal
initdb.log.
La sortie de la commande précédente est redirigée vers le fichier
initdb.log situé dans le répertoire qui contient celui de
la base (PGDATA). Il est possible d’y vérifier l’ensemble
des étapes réalisées, notamment l’activation des sommes de contrôle.
$ cat /var/lib/pgsql/18/initdb.log
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with this locale configuration:
locale provider: libc
LC_COLLATE: en_US.UTF-8
LC_CTYPE: en_US.UTF-8
LC_MESSAGES: en_US.UTF-8
LC_MONETARY: en_US.UTF-8
LC_NUMERIC: en_US.UTF-8
LC_TIME: en_US.UTF-8
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are enabled.
fixing permissions on existing directory /var/lib/pgsql/18/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default "max_connections" ... 100
selecting default "shared_buffers" ... 128MB
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
Success. You can now start the database server using:
/usr/pgsql-18/bin/pg_ctl -D /var/lib/pgsql/18/data/ -l logfile start
Ne pas tenir compte de la dernière ligne, qui est une suggestion qui
ne tient pas compte des outils prévus pour cet OS.
Démarrage
Démarrer l’instance.
Attention, si vous avez créé une instance, par exemple à partir des
sources, elle doit impérativement être arrêtée pour pouvoir démarrer la
nouvelle instance ! Elles ne peuvent pas être démarrées en même temps,
sauf à modifier le port dans la configuration de l’une d’entre
elles.
En tant que root :
systemctl start postgresql-18
Si aucune erreur ne s’affiche, tout va bien à priori.
Pour connaître l’état de l’instance :
systemctl status postgresql-18
● postgresql-18.service - PostgreSQL 18 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-18.service; disabled; preset: disabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Wed 2026-01-28 10:05:20 UTC; 25s ago
Docs: https://www.postgresql.org/docs/18/static/
Process: 1088 ExecStartPre=/usr/pgsql-18/bin/postgresql-18-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 1093 (postgres)
Tasks: 10 (limit: 99788)
Memory: 22.2M (peak: 22.7M)
CPU: 46ms
CGroup: /system.slice/postgresql-18.service
├─1093 /usr/pgsql-18/bin/postgres -D /var/lib/pgsql/18/data/
├─1094 "postgres: logger "
├─1095 "postgres: io worker 0"
├─1096 "postgres: io worker 1"
├─1097 "postgres: io worker 2"
├─1098 "postgres: checkpointer "
├─1099 "postgres: background writer "
├─1101 "postgres: walwriter "
├─1102 "postgres: autovacuum launcher "
└─1103 "postgres: logical replication launcher "
Jan 28 10:05:20 rocky9 systemd[1]: Starting PostgreSQL 18 database server...
Jan 28 10:05:20 rocky9 postgres[1093]: 2026-01-28 10:05:20.886 UTC [1093] LOG: redirecting log output to logging collector process
Jan 28 10:05:20 rocky9 postgres[1093]: 2026-01-28 10:05:20.886 UTC [1093] HINT: Future log output will appear in directory "log".
Jan 28 10:05:20 rocky9 systemd[1]: Started PostgreSQL 18 database server.
Activer le démarrage de l’instance au démarrage de la machine.
Le packaging Red Hat ne prévoie pas l’activation du service au boot,
il faut le demander explicitement :
systemctl enable postgresql-18
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-18.service → /usr/lib/systemd/system/postgresql-18.service.
Où sont les fichiers de données (PGDATA), et les traces
de l’instance ?
Les données et fichiers de configuration sont dans
/var/lib/pgsql/18/data/.
ls -1 /var/lib/pgsql/18/data/
base
current_logfiles
global
log
pg_commit_ts
pg_dynshmem
pg_hba.conf
pg_ident.conf
pg_logical
pg_multixact
pg_notify
pg_replslot
pg_serial
pg_snapshots
pg_stat
pg_stat_tmp
pg_subtrans
pg_tblspc
pg_twophase
PG_VERSION
pg_wal
pg_xact
postgresql.auto.conf
postgresql.conf
postmaster.opts
postmaster.pid
Les traces sont par défaut dans le sous-répertoire log/
du PGDATA.
ls -l /var/lib/pgsql/18/data/log/
total 4
-rw------- 1 postgres postgres 701 Jan 28 10:05 postgresql-Wed.log
NB : Dans les paquets RPM, le nom exact du fichier dépend du jour de
la semaine.
Configuration
Vérifier la configuration par défaut de PostgreSQL. Est-ce que le
serveur écoute sur le réseau ?
Il est possible de vérifier dans le fichier
postgresql.conf que par défaut, le serveur écoute
uniquement l’interface réseau localhost (la valeur est
commentée car c’est celle par défaut) :
grep listen_addresses /var/lib/pgsql/18/data/postgresql.conf
#listen_addresses = 'localhost' # what IP address(es) to listen on;
Il faudra donc modifier ainsi et redémarrer pour que des utilisateurs
puissent se connecter depuis d’autres machines :
listen_addresses = '*' # what IP address(es) to listen on;
systemctl restart postgresql-18
Il est aussi possible de vérifier au niveau système en utilisant la
commande netstat (qui nécessite l’installation du paquet
net-tools) :
netstat -anp | grep -E '(Active|Proto|postgres)'
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 1207/postgres
tcp6 0 0 :::5432 :::* LISTEN 1207/postgres
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 3 [ ] STREAM CONNECTED 2712947 1208/postgres: logg
unix 2 [ ACC ] STREAM LISTENING 2715671 1207/postgres /run/postgresql/.s.PGSQL.5432
unix 2 [ ACC ] STREAM LISTENING 2709678 1207/postgres /tmp/.s.PGSQL.5432
…
(La présence de lignes tcp6 dépend de la configuration
de la machine.)
On notera que la socket écoute à deux endroits, dans
/run/postgresql/ et dans /tmp. C’est un
paramétrage par défaut lié aux paquets RPM.
Quel est l’utilisateur sous lequel tourne l’instance ?
C’est l’utilisateur nommé postgres :
ps -U postgres -f -o pid,user,cmd
PID USER CMD
1207 postgres /usr/pgsql-18/bin/postgres -D /var/lib/pgsql/18/data/
1208 postgres \_ postgres: logger
1209 postgres \_ postgres: io worker 0
1210 postgres \_ postgres: io worker 1
1211 postgres \_ postgres: io worker 2
1212 postgres \_ postgres: checkpointer
1213 postgres \_ postgres: background writer
1215 postgres \_ postgres: walwriter
1216 postgres \_ postgres: autovacuum launcher
1217 postgres \_ postgres: logical replication launcher
Il possède aussi le PGDATA :
total 12
drwx------ 2 postgres postgres 4096 Nov 13 11:41 backups
drwx------ 20 postgres postgres 4096 Jan 28 10:07 data
-rw------- 1 postgres postgres 913 Jan 28 10:04 initdb.log
postgres est le nom traditionnel sur la plupart des
distributions, mais il n’est pas obligatoire (par exemple, le TP par
compilation utilise un autre utilisateur).
Connexion
En tant que root , tenter une connexion avec
psql.
psql: error: connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: FATAL: role "root" does not exist
Cela échoue car psql tente de se connecter avec
l’utilisateur système en cours, soit root . Ça ne
marchera pas mieux cependant en essayant de se connecter avec
l’utilisateur postgres :
psql: error: connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "postgres"
En effet, le pg_hba.conf est configuré de telle manière
que l’utilisateur de PostgreSQL et celui du système doivent porter le
même nom (connexion peer ici).
En tant que postgres , tenter une connexion avec
psql. Quitter.
psql (18.1)
Type "help" for help.
postgres=# exit
La connexion fonctionne donc indirectement depuis tout utilisateur
pouvant effectuer un sudo.
À quelle base se connecte-t-on par défaut ?
psql (18.1)
Type "help" for help.
postgres=# \conninfo
Connection Information
Parameter | Value
----------------------+-----------------
Database | postgres
Client User | postgres
Socket Directory | /run/postgresql
Server Port | 5432
Options |
Protocol Version | 3.0
Password Used | false
GSSAPI Authenticated | false
Backend PID | 1741
SSL Connection | false
Superuser | on
Hot Standby | off
(12 rows)
Là encore, la présence d’une base nommée postgres est
une tradition et non une obligation.
Première base
Créer une première base de données et y créer des tables.
postgres=# CREATE DATABASE test ;
CREATE DATABASE
Alternativement :
sudo -iu postgres createdb test
Se connecter explicitement à la bonne base :
sudo -iu postgres psql -d test
test=# CREATE TABLE mapremieretable (x int );
CREATE TABLE
test=# \d+
List of relations
Schema | Name | Type | Owner | Persistence | Access method | Size | Description
--------+-----------------+-------+----------+-------------+---------------+---------+-------------
public | mapremieretable | table | postgres | permanent | heap | 0 bytes |
Installation à
partir des sources (optionnel)
Outils de compilation
Installer les outils de compilation suivants, si ce n’est déjà
fait.
Ces actions doivent être effectuées en tant qu’utilisateur privilégié
(soit directement en tant que root , soit en utilisant
la commande sudo).
NB : Ceci a été testé avec PostgreSQL 18 sur Rocky Linux 9 et Debian
12. Des dépendances un peu différentes pourraient apparaître pour
d’autres versions.
Sous Rocky Linux, il faudra utiliser dnf :
sudo dnf -y group install "Development Tools"
sudo dnf -y install perl readline-devel openssl-devel wget bzip2
Sous Debian ou Ubuntu :
sudo apt install -y build-essential libreadline-dev zlib1g-dev flex bison \
libxml2-dev libxslt-dev libssl-dev pkg-config
Une fois ces outils installés, tout ce qui suit devrait fonctionner
sur toute version de Linux.
Créer l’utilisateur système srcpostgres avec
/opt/pgsql pour répertoire HOME.
sudo useradd --home-dir /opt/pgsql --system --create-home srcpostgres
sudo usermod --shell /bin/bash srcpostgres
Se connecter en tant que l’utilisateur
srcpostgres .
Se connecter en tant qu’utilisateur
srcpostgres :
Téléchargement
Télécharger l’archive des fichiers sources de la
dernière version stable depuis postgresql.org.
(Alternative : récupérer la dernière version stable
dans le dépôt git.)
Les placer dans /opt/pgsql/src.
En tant qu’utilisateur srcpostgres , créer un
répertoire dédié aux sources :
mkdir ~srcpostgres/src
cd ~srcpostgres/src
Aller sur https://postgresql.org ,
cliquer Download et récupérer le lien vers l’archive des
fichiers sources de la dernière version stable (PostgreSQL 18.1 au
moment où ceci est écrit). Il est possible de le faire en ligne de
commande :
wget https://ftp.postgresql.org/pub/source/v18.1/postgresql-18.1.tar.bz2
Il faut décompresser l’archive :
tar xjvf postgresql-18.1.tar.bz2
cd postgresql-18.1
Alternativement, le dépôt git se récupère ainsi :
git clone --branch REL_18_1 --depth 1 \
https://git.postgresql.org/git/postgresql.git postgresql-18.1
cd postgresql-18.1
ou de manière moins économe :
git clone https://git.postgresql.org/git/postgresql.git
cd postgresql
git checkout REL_18_1
cd postgresql
(Au besoin git tag liste les versions disponibles.)
Compilation et installation
L’installation des binaires compilés se fera dans
/opt/pgsql/18/.
Configurer en conséquence l’environnement de compilation
(./configure).
Compiler PostgreSQL. Ne pas oublier les contribs.
Configuration :
./configure --prefix /opt/pgsql/18
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking which template to use... linux
checking whether NLS is wanted... no
checking for default port number... 5432
…
…
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port
Vous pourriez également avoir besoin des paquets libicu
et libicu-devel.
Des fichiers sont générés, notamment le Makefile .
La compilation se lance de manière classique. Elle peut prendre un
certain temps sur les machines un peu anciennes :
make # make -j3 selon le nombre de cœurs
make -C ./src/backend generated-headers
make[1]: Entering directory '/opt/pgsql/postgresql-18.1/src/backend'
make -C ../include/catalog generated-headers
make[2]: Entering directory '/opt/pgsql/postgresql-18.1/src/include/catalog'
…
make[1]: Leaving directory '/opt/pgsql/postgresql-18.1/src'
make -C config all
make[1]: Entering directory '/opt/pgsql/postgresql-18.1/config'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/opt/pgsql/postgresql-18.1/config'
make -C ../src/backend generated-headers
make[1]: Entering directory '/opt/pgsql/postgresql-18.1/src/backend'
make -C ../include/catalog generated-headers
make[2]: Entering directory '/opt/pgsql/postgresql-18.1/src/include/catalog'
…
make[2]: Entering directory '/opt/pgsql/postgresql-18.1/src/backend/nodes'
make[2]: Nothing to be done for 'generated-header-symlinks'.
make[2]: Leaving directory '/opt/pgsql/postgresql-18.1/src/backend/nodes'
Installer les fichiers obtenus.
L’installation peut se faire en tant que srcpostgres
(et non root ) car nous avons défini comme cible le
répertoire /opt/pgsql/18/ qui lui appartient :
cd ~srcpostgres/postgresql-18.1
make install
cd contrib
make install
Dans ce TP, nous nous sommes attachés à changer le moins possible
d’utilisateur système. Il se peut que vous ayez à installer les fichiers
obtenus en tant qu’utilisateur root dans d’autres
environnements en fonction de la politique de sécurité adoptée.
Où se trouvent les binaires installés de PostgreSQL ?
Les binaires installés sont situés dans le répertoire
/opt/pgsql/18/bin.
clusterdb
createdb
createuser
…
pg_verifybackup
pg_waldump
pg_walsummary
pgbench
postgres
psql
reindexdb
vacuumdb
vacuumlo
Configurer le système
Ajouter les variables d’environnement PATH et
LD_LIBRARY_PATH au ~srcpostgres/.bash_profile
de l’utilisateur srcpostgres pour accéder facilement à
ces binaires.
Ajouter les lignes suivantes à la fin du fichier
~srcpostgres/.bash_profile (ce fichier peut ne pas exister
préalablement, et un autre fichier peut être nécessaire selon
l’environnement utilisé) :
export PGDATA = /opt/pgsql/18/data
export PATH = /opt/pgsql/18/bin:$PATH
export LD_LIBRARY_PATH = /opt/pgsql/18/lib:$LD_LIBRARY_PATH
Il faut ensuite recharger le fichier à l’aide de la commande suivante
(ne pas oublier le point et l’espace au début de la commande) ; ou se
déconnecter et se reconnecter.
. ~srcpostgres/.bash_profile
Vérifier que les chemins sont bons :
Création d’une instance
Avec initdb, initialiser une instance dans
/opt/pgsql/18/data en spécifiant postgres
comme nom de super-utilisateur. Les sommes de contrôle sont activées par
défaut.
$ initdb -D $PGDATA -U postgres
The files belonging to this database system will be owned by user "srcpostgres".
This user must also own the server process.
The database cluster will be initialized with this locale configuration:
locale provider: libc
LC_COLLATE: en_US.UTF-8
LC_CTYPE: en_US.UTF-8
LC_MESSAGES: en_US.UTF-8
LC_MONETARY: en_US.UTF-8
LC_NUMERIC: en_US.UTF-8
LC_TIME: en_US.UTF-8
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are enabled.
creating directory /opt/pgsql/18/data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default "max_connections" ... 100
selecting default "shared_buffers" ... 128MB
selecting default time zone ... UTC
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /opt/pgsql/18/data -l logfile start
Démarrer l’instance.
Attention : s’il y a déjà une autre instance sur cette machine et
qu’elle est démarrée, le port 5432 est occupé et votre nouvelle instance
ne pourra pas fonctionner. Arrêter l’autre instance ou modifier le port
5432 d’une des instances.
pg_ctl -D $PGDATA -l $PGDATA /server.log start
waiting for server to start.... done
server started
2026-01-28 10:40:01.430 UTC [24790] LOG: starting PostgreSQL 18.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11), 64-bit
2026-01-28 10:40:01.434 UTC [24790] LOG: could not bind IPv6 address "::1": Address already in use
2026-01-28 10:40:01.434 UTC [24790] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2026-01-28 10:40:01.434 UTC [24790] LOG: could not bind IPv4 address "127.0.0.1": Address already in use
2026-01-28 10:40:01.434 UTC [24790] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2026-01-28 10:40:01.434 UTC [24790] WARNING: could not create listen socket for "localhost"
2026-01-28 10:40:01.434 UTC [24790] FATAL: could not create any TCP/IP sockets
2026-01-28 10:40:01.435 UTC [24790] LOG: database system is shut down
2026-01-28 10:40:34.072 UTC [24844] LOG: starting PostgreSQL 18.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.5.0 20240719 (Red Hat 11.5.0-11), 64-bit
2026-01-28 10:40:34.073 UTC [24844] LOG: listening on IPv6 address "::1", port 5432
2026-01-28 10:40:34.073 UTC [24844] LOG: listening on IPv4 address "127.0.0.1", port 5432
2026-01-28 10:40:34.074 UTC [24844] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
2026-01-28 10:40:34.076 UTC [24850] LOG: database system was shut down at 2026-01-28 10:39:42 UTC
2026-01-28 10:40:34.078 UTC [24844] LOG: database system is ready to accept connections
Tenter une première connexion avec
psql.
Pourquoi cela échoue-t-il ?
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "srcpostgres" does not exist
Par défaut, psql demande à se connecter avec un nom
d’utilisateur (au sens PostgreSQL) identique à l’utilisateur système en
cours, mais la base de données ne connaît pas d’utilisateur
srcpostgres . Par défaut, elle ne connaît que
postgres .
Se connecter en tant qu’utilisateur postgres .
Ressortir.
psql (18.1)
Type "help" for help.
postgres=# exit
Noter que la connexion fonctionne parce que le
pg_hba.conf livré avec les sources est par défaut très
laxiste (méthode trust en local et via
localhost !). (Il y a d’ailleurs eu un avertissement lors
de la création de la base.)
Dans .bash_profile, configurer la variable
d’environnement PGUSER pour se connecter toujours en tant
que postgres . Retester la connextion directe avec
psql.
Ajouter ceci à la fin du fichier
~srcpostgres/.bash_profile :
Et recharger le fichier à l’aide de la commande suivante (ne pas
oublier le point et l’espace au début de la commande) :
La connexion doit fonctionner sur le champ :
psql (18.1)
Type "help" for help.
postgres=# \conninfo
Connection Information
Parameter | Value
----------------------+----------
Database | postgres
Client User | postgres
Socket Directory | /tmp
Server Port | 5432
Options |
Protocol Version | 3.0
Password Used | false
GSSAPI Authenticated | false
Backend PID | 24860
SSL Connection | false
Superuser | on
Hot Standby | off
(12 rows)
Se déconnecté de l’instance :
Première base
Créer une première base de donnée nommée test.
En ligne de commande shell :
SELECT pg_catalog.set_config('search_path', '', false);
CREATE DATABASE test;
Alternativement, depuis psql :
postgres=# CREATE DATABASE test ;
CREATE DATABASE
Se connecter à la base test et créer quelques
tables.
test=# CREATE TABLE premieretable (x int ) ;
CREATE TABLE
Arrêt
Arrêter cette instance.
waiting for server to shut down.... done
server stopped
2026-01-28 10:43:39.576 UTC [24844] LOG: received fast shutdown request
2026-01-28 10:43:39.578 UTC [24844] LOG: aborting any active transactions
2026-01-28 10:43:39.579 UTC [24844] LOG: background worker "logical replication launcher" (PID 24853) exited with exit code 1
2026-01-28 10:43:39.579 UTC [24848] LOG: shutting down
2026-01-28 10:43:39.580 UTC [24848] LOG: checkpoint starting: shutdown immediate
2026-01-28 10:43:39.602 UTC [24848] LOG: checkpoint complete: wrote 991 buffers (6.0%), wrote 3 SLRU buffers; 0 WAL file(s) added, 0 removed, 0 recycled; write=0.011 s, sync=0.010 s, total=0.023 s; sync files=313, longest=0.001 s, average=0.001 s; distance=4700 kB, estimate=4700 kB; lsn=0/1BF02F8, redo lsn=0/1BF02F8
2026-01-28 10:43:39.608 UTC [24844] LOG: database system is shut down