Dari dalam DB cluster mana pun:
Catch 22:Anda harus terhubung ke database terlebih dahulu. Mungkin Anda dapat terhubung sebagai pengguna lain? (Secara default, beberapa koneksi dicadangkan untuk pengguna super dengan superuser_reserved_connections
pengaturan.)
Untuk mendapatkan informasi rinci untuk setiap koneksi oleh pengguna ini:
SELECT *
FROM pg_stat_activity
WHERE usename = 'user_name';
Sebagai pengguna yang sama atau sebagai pengguna super, Anda dapat membatalkan semua koneksi (lainnya) pengguna:
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();
Lebih baik pastikan tidak apa-apa untuk melakukannya. Anda tidak ingin menghentikan kueri (atau koneksi) penting seperti itu.
pg_cancel_backend()
dan pg_terminate_backend()
dalam manual.
Dari shell Linux
Apakah Anda memulai koneksi lain itu sendiri? Mungkin skrip gantung Anda? Anda harus bisa membunuh mereka (jika Anda yakin tidak apa-apa untuk melakukannya).
Anda dapat menyelidiki dengan ps
proses mana yang mungkin salah:
ps -aux
ps -aux | grep psql
Jika Anda mengidentifikasi proses untuk membunuh (lebih baik pastikan, Anda tidak ingin mematikan server):
kill 123457689 # pid of process here.
Atau dengan SIGKILL
bukannya SIGTERM
:
kill -9 123457689