sql >> Databáze >  >> RDS >> PostgreSQL

psql:FATAL:příliš mnoho připojení pro roli

Zevnitř libovolné DB klastru:

Hlavička 22:nejprve se musíte připojit k databázi. Možná se můžete připojit jako jiný uživatel? (Ve výchozím nastavení jsou některá připojení vyhrazena pro superuživatele s superuser_reserved_connections nastavení.)

Chcete-li získat podrobné informace o každém připojení tohoto uživatele:

SELECT *
FROM   pg_stat_activity
WHERE  usename = 'user_name';

Jako stejný uživatel nebo jako superuživatel můžete zrušit všechna (jiná) připojení uživatele:

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

Raději se ujistěte, že je to v pořádku. Nechcete tímto způsobem ukončit důležité dotazy (nebo připojení).

pg_cancel_backend() a pg_terminate_backend() v příručce.

Z prostředí Linux

Ty další spojení jsi začal sám? Možná nějaký váš závěsný scénář? Měli byste být schopni je zabít (pokud jste si jisti, že je to v pořádku).

Můžete to prozkoumat pomocí ps které procesy mohou být na vině:

ps -aux
ps -aux | grep psql

Pokud identifikujete proces, který chcete zabít (nejspíš si to neděláte chcete zabít server):

kill  123457689 # pid of process here.

Nebo pomocí SIGKILL místo SIGTERM :

kill -9 123457689


  1. V MySQL nelze vložit jiné než latinské symboly

  2. Najděte datum/čas vytvoření sloupce tabulky

  3. Potíže s levým spojováním tabulek panda (ValueError:Pokoušíte se sloučit sloupce object a int64.)

  4. SQL Server 2008 – zmenšení protokolu transakcí – nějaký způsob automatizace?