Depuis n'importe quelle base de données du cluster :
Catch 22 :vous devez d'abord être connecté à une base de données. Peut-être pouvez-vous vous connecter en tant qu'autre utilisateur ? (Par défaut, certaines connexions sont réservées aux super-utilisateurs avec le superuser_reserved_connections
réglage.)
Pour obtenir des informations détaillées pour chaque connexion par cet utilisateur :
SELECT *
FROM pg_stat_activity
WHERE usename = 'user_name';
En tant que même utilisateur ou en tant que superutilisateur, vous pouvez annuler toutes les (autres) connexions d'un utilisateur :
SELECT pg_cancel_backend(pid) -- (SIGINT)
-- pg_terminate_backend(pid) -- the less patient alternative (SIGTERM)
FROM pg_stat_activity
WHERE usename = 'user_name'
AND pid <> pg_backend_pid();
Mieux vaut être sûr que c'est ok de le faire. Vous ne voulez pas mettre fin à des requêtes (ou connexions) importantes de cette façon.
pg_cancel_backend()
et pg_terminate_backend()
dans le manuel.
Depuis un shell Linux
Avez-vous démarré ces autres connexions vous-même ? Peut-être un de vos scripts suspendus ? Vous devriez pouvoir les tuer (si vous êtes sûr que vous pouvez le faire).
Vous pouvez enquêter avec ps
quels processus pourraient être en faute :
ps -aux
ps -aux | grep psql
Si vous identifiez un processus à tuer (mieux vaut être sûr que vous ne le faites pas veux tuer le serveur):
kill 123457689 # pid of process here.
Ou avec SIGKILL
au lieu de SIGTERM
:
kill -9 123457689