psql: error while loading shared libraries: libreadline.so.7

Bonjour

Après des années d’absence il est bon de revenir vers vous et continuer l’aventure autour des bases de données
Merci déjà pour vos messages cela me touche énormément .

Incident :

J’ai été appelé en astreinte pour une base de données postgresql 9.6.11 .
impossible de se connecter à l’instance.

Analyse :

nous avons bien les process présent

root@serveur1:/lib/x86_64-linux-gnu# ps -ef | grep post
postgres  1647     1  0 09:52 ?        00:00:02 /lib/systemd/systemd –user
postgres  1653  1647  0 09:52 ?        00:00:00 (sd-pam)
postgres  1818     1  0 09:52 ?        00:00:00 /opt/postgresql/postgresql-9.6.11/bin/postgres -D /appli/postgres/Instance1/pgdata/data
root      1875     1  0 09:52 ?        00:00:00 /usr/lib/postfix/sbin/master -w
postfix   1878  1875  0 09:52 ?        00:00:00 qmgr -l -t unix -u
postgres  1880  1818  0 09:52 ?        00:00:00 postgres: checkpointer process
postgres  1881  1818  0 09:52 ?        00:00:00 postgres: writer process
postgres  1882  1818  0 09:52 ?        00:00:00 postgres: wal writer process
postgres  1883  1818  0 09:52 ?        00:00:00 postgres: autovacuum launcher process
postgres  1884  1818  0 09:52 ?        00:00:00 postgres: archiver process   last was 00000001000001E700000010
postgres  1885  1818  0 09:52 ?        00:00:00 postgres: stats collector process
root      8257 21297  0 11:27 pts/1    00:00:00 su – postgres
postgres  8258  8257  0 11:27 pts/1    00:00:00 -bash
postfix  11083  1875  0 11:32 ?        00:00:00 pickup -l -t unix -u -c
postgres 14438  1818  0 10:18 ?        00:00:00 postgres: mmx Tik [local] idle
postfix  15870  1875  0 11:47 ?        00:00:00 cleanup -z -t unix -u -c
postfix  15871  1875  0 11:47 ?        00:00:00 trivial-rewrite -n rewrite -t unix -u -c
postfix  15872  1875  0 11:47 ?        00:00:00 smtp -t unix -u
root     16156 28793  0 11:48 pts/2    00:00:00 /bin/grep –color=auto post
root@serveur1:/lib/x86_64-linux-gnu#

Tentative de connexion :
psql

psql: error while loading shared libraries: libreadline.so.7: cannot open shared object file: No such file or directory

recherche de la libreadline.so.7

find /opt/postgresql -name “libreadline.so.7”

Pas de fichier présent

Interprétation :
il y a une modification ou une suppression de ce fichier .

recherche des traces de suppression dans l’historique de connexion : KO

recherche du package debian

root@serveur1:~# ldconfig -p | grep readline
libreadline.so.8 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.8
libreadline.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libreadline.so

je retrouve bien une bibliothèque mais en version 8 .

Solution :

1) réinstaller les sources 9.6.11 ou le package 7 ( en production pas possible la nuit)
ou le package

2)  créé un lien symbolique sur la version 8

la solution 2 est la plus simple à mettre en place rapidement

D’abord  quel est le rôle de cette bibliothèque ?

Nous avons la réponse dans la documentation  officiel de postgresql :
https://docs.postgresql.fr/13/install-requirements.html

je cite ”
Elle permet à psql (l’interpréteur de ligne de commandes SQL de PostgreSQL) de se souvenir de chaque commande saisie,
et permet d’utiliser les flèches du clavier pour rappeler et éditer les commandes précédentes.

Nous pouvons bien utiliser  la version 8 de la bibliothèque en recréant  un lien symbolique puisque l’installation 9.6.11 fonctionne avec la bibliothèque realine 7
cela ne rend pas notre moteur instable .

cd /lib/x86_64-linux-gnu/

ln -s libreadline.so.7 libreadline.so.8

su – postgres

psql
postgres@serveur1/instance1 >
psql (9.6.11)
Type “help” for help.

template1=#

Post Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *