263 votes

Postgresql - Impossible de supprimer la base de données en raison de certaines connexions automatiques à la base de données.

Chaque fois que j'essaie d'abandonner la base de données, j'obtiens :

ERROR:  database "pilot" is being accessed by other users
DETAIL:  There is 1 other session using the database.

Quand je l'utilise :

SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'TARGET_DB';

J'ai mis fin à la connexion de cette base de données, mais si j'essaie de supprimer la base de données après cela, quelqu'un se connecte automatiquement à cette base de données et donne cette erreur. Qu'est-ce qui peut provoquer cela ? Personne n'utilise cette base de données, sauf moi.

26voto

Renis1235 Points 375

Mise à jour dans Postgresql 13

Vous pourriez simplement utiliser cette commande pour déposer une base de données avec force et déconnecte ainsi chaque utilisateur/application qui y est connecté.

DROP DATABASE db_name WITH (FORCE)

Vous pourriez vérifier le manuel pour plus.

FORCE - Tente de mettre fin à toutes les connexions existantes à la base de données cible. Elle ne se termine pas si des transactions préparées, des emplacements de réplication logique actifs ou des abonnements sont présents dans la base de données cible.

23voto

Andrew Points 6859

Solution GUI utilisant pgAdmin 4

Commencez par activer l'affichage de l'activité sur le tableau de bord si vous ne l'avez pas encore fait :

File > Preferences > Dashboards > Display > Show Activity > true

Maintenant, désactivez tous les processus en utilisant le db :

  1. Cliquez sur le nom de la BD
  2. Cliquez sur Tableau de bord > Sessions
  3. Cliquez sur l'icône de rafraîchissement
  4. Cliquez sur l'icône de suppression (x) à côté de chaque processus pour y mettre fin.

Vous devriez maintenant être en mesure de supprimer la base de données.

13voto

ScotchAndSoda Points 719

S'il n'y a pas d'impact potentiel sur d'autres services sur votre machine, il suffit de service postgresql restart

12voto

amoljdv06 Points 332

Solution :
1. Arrêtez le serveur Pg
enter image description here
2. Il déconnectera toutes les connexions actives
3. Redémarrer le serveur Pg
4. Essayez votre commande

10voto

OdkoPP Points 382

Aussi simple que cela

sudo service postgresql restart

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X