PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

psql:FATAL:terlalu banyak koneksi untuk peran

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat salinan database di PostgreSQL

  2. Apakah ada cara untuk mengindeks di postgres untuk pencarian substring cepat?

  3. Pesan 28000:tidak ada entri pg_hba.conf untuk host \xx.xxx.xxx.xxxx\, pengguna \User, database \databasename\, SSL mati

  4. Konversikan file dump SQLITE SQL ke POSTGRESQL

  5. Bagaimana cara mengakses tampilan db menggunakan model Laravel?