PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Postgresql - не може да се премахне базата данни поради някои автоматични връзки към DB

Можете да предотвратите бъдещи връзки:

REVOKE CONNECT ON DATABASE thedb FROM public;

(и евентуално други потребители/роли; вижте \l+ в psql )

След това можете да прекратите всички връзки към тази db, освен вашата собствена:

SELECT pid, pg_terminate_backend(pid) 
FROM pg_stat_activity 
WHERE datname = current_database() AND pid <> pg_backend_pid();

На по-стари версии pid беше наречен procpid така че ще трябва да се справите с това.

Тъй като сте отменили CONNECT права, каквото и да се опитваше да се свърже автоматично, вече не би трябвало да може да го прави.

Вече ще можете да пуснете DB.

Това няма да работи, ако използвате връзки на суперпотребител за нормални операции, но ако го правите, първо трябва да отстраните този проблем.

След като приключите с премахването на базата данни, ако създадете базата данни отново, можете да изпълните командата по-долу, за да възстановите достъпа

GRANT CONNECT ON DATABASE thedb TO public;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирам първичен ключ от цяло число в сериен?

  2. pgmemcache срещу безкраен кеш

  3. Задаване на изчакване за свързване с PDO

  4. PostgreSQL грешно преобразуване от времеви печат без часова зона към времеви печат с часова зона

  5. Преглед на различните методи за сканиране в PostgreSQL