sql >> Database >  >> RDS >> PostgreSQL

psql:FATAL:te veel connecties voor rol

Vanuit een willekeurige DB van het cluster:

Catch 22:je moet eerst verbonden zijn met een database. Misschien kun je verbinding maken als een andere gebruiker? (Standaard zijn sommige verbindingen gereserveerd voor superusers met de superuser_reserved_connections instelling.)

Om gedetailleerde informatie te krijgen voor elke verbinding door deze gebruiker:

SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Als de dezelfde gebruiker of je kunt als superuser alle (andere) verbindingen van een gebruiker opzeggen:

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

Je kunt er maar beter zeker van zijn dat het oké is om dat te doen. Op die manier wil je belangrijke zoekopdrachten (of verbindingen) niet beëindigen.

pg_cancel_backend() en pg_terminate_backend() in de handleiding.

Van een Linux-shell

Ben je die andere connecties zelf begonnen? Misschien een ophangscript van je? Je zou ze moeten kunnen doden (als je zeker weet dat het oké is om dat te doen).

Je kunt het onderzoeken met ps welke processen mogelijk fout zijn:

ps -aux
ps -aux | grep psql

Als u een proces identificeert om te doden (wees er zeker van dat u dit niet doet) wil de server doden):

kill  123457689 # pid of process here.

Of met SIGKILL in plaats van SIGTERM :

kill -9 123457689


  1. PDO invoegen in DB

  2. SQL INTERSECT

  3. Joomla! 3 installatie loopt vast bij het maken van een databasetabel

  4. Waarom wordt mysql_connect afgeraden en wat zijn de alternatieven?