sql >> データベース >  >> RDS >> PostgreSQL

Postgresql-DBへの自動接続が原因でデータベースを削除できません

    今後の接続を防ぐことができます:

    REVOKE CONNECT ON DATABASE thedb FROM public;
    

    (そしておそらく他のユーザー/役割; \l+を参照 psqlで )

    その後、自分のデータベースを除くこのデータベースへのすべての接続を終了できます。

    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. アクションスケジューラから投稿とコメントを削除する

    2. INSERT ... ON CONFLICT ...ですべての列を更新する方法は?

    3. 致命的なエラー:未定義の関数mysqli_result()の呼び出し

    4. OracleDate-現在までの年数を追加する方法