sql >> Base de Datos >  >> RDS >> PostgreSQL

psql:FATAL:demasiadas conexiones para el rol

Desde dentro de cualquier base de datos del clúster:

Catch 22:primero debe estar conectado a una base de datos. ¿Quizás puedas conectarte como otro usuario? (De forma predeterminada, algunas conexiones están reservadas para superusuarios con superuser_reserved_connections ajuste.)

Para obtener información detallada de cada conexión de este usuario:

SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Como el mismo usuario o como superusuario puede cancelar todas las (otras) conexiones de un usuario:

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();

Mejor asegúrese de que está bien hacerlo. No desea finalizar consultas importantes (o conexiones) de esa manera.

pg_cancel_backend() y pg_terminate_backend() en el manual.

Desde un shell de Linux

¿Empezaste esas otras conexiones tú mismo? ¿Quizás un guión colgante tuyo? Deberías poder matarlos (si estás seguro de que puedes hacerlo).

Puedes investigar con ps qué procesos pueden tener la culpa:

ps -aux
ps -aux | grep psql

Si identifica un proceso para eliminar (mejor asegúrese de que no quiero matar el servidor):

kill  123457689 # pid of process here.

O con SIGKILL en lugar de SIGTERM :

kill -9 123457689