Cada vez que intento soltar 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 esa base de datos, pero si trato de eliminar la base de datos después de eso, de alguna manera alguien se conecta automáticamente a esa base de datos y da este error. ¿Qué podría estar haciendo eso? Nadie usa esta base de datos, excepto yo.
fuente
GRANT CONNECT ON DATABASE thedb TO public;
Cada vez que intento soltar la base de datos obtengo:
Primero necesitas revocar
Luego use:
Seguramente funcionará.
fuente
Encontré una solución para este problema, intente ejecutar este comando en la terminal
matar proceso por este comando
fuente
Simplemente verifique cuál es la conexión, de dónde viene. Puedes ver todo esto en:
Tal vez es tu conexión?
fuente
Significa que otro usuario está accediendo a la base de datos. Simplemente reinicie PostgreSQL. Este comando hará el truco
Luego intente soltar la base de datos:
Esto hará el truco.
fuente
Solución pgAdmin 4 usando UI
Primero habilite mostrar actividad en el tablero si no ha:
Ahora deshabilite todos los procesos usando el db:
Ahora debería poder eliminar la base de datos.
fuente
Si no hay un impacto potencial en otros servicios en su máquina, simplemente
service postgresql restart
fuente
Solución:
1. Apague el servidor Pg 2. Desconectará toda la conexión activa 3. Reinicie el servidor Pg 4. Pruebe su comando
fuente
Simple como eso
fuente
En mi caso, estoy usando AWS Redshift (basado en Postgres). Y parece que no hay otras conexiones a la base de datos, pero estoy recibiendo este mismo error.
En mi caso, parece que el clúster de la base de datos todavía está procesando algo en la base de datos, y aunque no hay otras conexiones externas / de usuario, la base de datos todavía está en uso interno. Encontré esto ejecutando lo siguiente:
Entonces, mi truco fue escribir un bucle en mi código, buscando filas con el nombre de mi base de datos. (por supuesto, el bucle no es infinito, y es un bucle adormecido, etc.)
Si se encuentran filas, proceda a eliminar cada PID, uno por uno.
Si no se encuentran filas, proceda a descartar la base de datos.
Nota: en mi caso, estoy escribiendo pruebas de unidad / sistema Java, donde esto podría considerarse aceptable. Esto no es aceptable para el código de producción.
Aquí está el hack completo, en Java (ignore mis clases de prueba / utilidad).
fuente
En mi opinión, hay algunas consultas inactivas que se ejecutan en el fondo.
Nota: matar una consulta de selección no tiene ningún impacto negativo
fuente
REVOKE CONNECT
no impedirá las conexiones del propietario o superusuario de db. Por lo tanto, si no desea que nadie conecte la base de datos, puede ser útil seguir el comando.Luego use:
fuente
Si bien encontré que las dos respuestas con votos superiores fueron útiles en otras ocasiones, hoy en día, la forma más sencilla de resolver el problema era darse cuenta de que PyCharm podría mantener una sesión abierta, y si hice clic
Stop
en PyCharm, eso podría ayudar. Con pgAdmin4 abierto en el navegador, lo hice, y casi de inmediato vi que las estadísticas de las sesiones de la Base de datos cayeron a 0, momento en el que pude soltar la base de datos.fuente
En macOS, intente reiniciar la base de datos postgresql a través de la consola con el comando:
fuente
En la terminal prueba este comando:
verás como:
El tercer número (3645) es PID.
Puedes borrar esto
Y después de eso, inicie su conexión PostgreSQL.
Comience manualmente:
fuente