utilizada usuarios una todas template1 tablas siendo puede postgres por otros origen las está error eliminar datos create crear como borrar activa postgresql postgresql-9.2

postgresql - usuarios - error: no se puede eliminar la base de datos activa



Postgresql: no se puede eliminar la base de datos debido a algunas conexiones automáticas con DB (6)

Cada vez que intento eliminar la base de datos obtengo:

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

Primero, debe revocar

REVOKE CONNECT ON DATABASE TARGET_DB FROM public;

Luego usa:

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

Seguramente funcionará.

Cada vez que intento eliminar la base de datos obtengo:

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

Cuando uso:

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

Terminé la conexión desde ese DB, pero si intento eliminar la base de datos después de eso, de alguna manera, alguien se conecta automáticamente a esa base de datos y muestra este error. ¿Qué podría estar haciendo eso? Nadie usa esta base de datos, excepto yo.


Encontré una solución para este problema intente ejecutar este comando en la terminal

ps -ef | grep postgres

matar proceso por este comando

sudo kill -9 PID


Puede evitar conexiones futuras:

REVOKE CONNECT ON DATABASE thedb FROM public;

(y posiblemente otros usuarios / roles; vea /l+ en psql )

A continuación, puede finalizar todas las conexiones a esta base de datos, excepto la suya:

SELECT pid, pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = current_database() AND pid <> pg_backend_pid();

En versiones anteriores, pid se llamaba procpid así que tendrás que lidiar con eso.

Como ha revocado los derechos de CONNECT , lo que estaba tratando de conectarse automáticamente ya no podría hacerlo.

Ahora podrá soltar la base de datos.

Esto no funcionará si está utilizando conexiones de superusuario para operaciones normales, pero si lo hace, primero debe solucionar ese problema.


Si no hay un impacto potencial en otros servicios en su máquina, simplemente service postgresql restart


Significa que otro usuario está accediendo a la base de datos ... Simplemente, reinicie el postgresql. Este comando hará el truco

root@kalilinux:~#sudo service postgresql restart

Luego, intente eliminar la base de datos:

postgres=# drop database accment_revamp

Esto hará el truco. Feliz codificación


Simplemente revisa cuál es la conexión, de dónde viene. Puedes ver todo esto en:

select * from pg_stat_activity where datname = ''TARGET_DB'';

Tal vez es tu conexión?