LoginSignup
20
22

More than 5 years have passed since last update.

PostgreSQLで強制的にデータベースを削除する

Posted at

PostgreSQLのデータベースを削除しようとした時に、
dropdb: database removal failed: ERROR: database "hoge_db" is being accessed by other users
他のユーザーがdetabaseにアクセスしてるから、そのデータベースは消せないよというエラー。

いろいろ試してみて削除できなかったので、半ば強制的に消す方法を書いておきます。

psql -l //データベース名を確認
psql postgres //postgreSQLにログイン
\du //ユーザーと権限を確認

ps aux | grep 消したいDB名 // 消したいDB名のプロセスID(数字)を確認
sudo kill プロセスID
//以下例
sudo kill 45912
dropdb -U postgres(もしくは消す権限のもったユーザー) 消したいDB名

強制削除処理の流れを再度ざっと書いておきます。
・postgreSQLで管理しているデータベース名を確認
・postgreSQLにpostgresユーザーでログイン
・ログイン後に\du コマンドでユーザーとユーザーの持つ権限を確認
\qpostgreSQLからログアウト
ps aux | grep 消したいDB名でプロセスIDを確認
sudo kill プロセスIDでプロセスを削除
dropdb -U postgres 消したいDB名で削除が出来ます。
もしこれで出来なかった場合は、postgresの部分を\duコマンドで確認した全ての権限を持っているユーザーに変更してみて下さい。

20
22
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
22