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 *