sql >> Databasteknik >  >> RDS >> PostgreSQL

psql:FATAL:för många anslutningar för rollen

Inifrån valfri DB i klustret:

Catch 22:du måste vara ansluten till en databas först. Kanske kan du ansluta som en annan användare? (Som standard är vissa anslutningar reserverade för superanvändare med superuser_reserved_connections inställning.)

För att få detaljerad information för varje anslutning av denna användare:

SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Som samma användare eller som superanvändare kan du avbryta alla (andra) anslutningar för en användare:

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

Bättre vara säker på att det är ok att göra det. Du vill inte avsluta viktiga frågor (eller anslutningar) på det sättet.

pg_cancel_backend() och pg_terminate_backend() i manualen.

Från ett Linux-skal

Startade du de andra kopplingarna själv? Kanske ett hängande manus av dig? Du bör kunna döda dem (om du är säker på att det är ok att göra det).

Du kan undersöka med ps vilka processer som kan vara fel:

ps -aux
ps -aux | grep psql

Om du identifierar en process att döda (det är bättre att vara säker på att du inte gör det vill döda servern):

kill  123457689 # pid of process here.

Eller med SIGKILL istället för SIGTERM :

kill -9 123457689


  1. Vad returnerar Java MySQL executeUpdate() för INSERT ON ON DUPLICATE KEY UPDATE?

  2. Få tidigare värde efter uppdatering - MySql

  3. Cachning av PDO-förberedda uttalanden

  4. Hur konverterar man mänskligt datum till unix-tidsstämpel i Mysql?