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
コマンドでユーザーとユーザーの持つ権限を確認
・\q
postgreSQLからログアウト
・ps aux | grep 消したいDB名
でプロセスIDを確認
・sudo kill プロセスID
でプロセスを削除
・dropdb -U postgres 消したいDB名
で削除が出来ます。
もしこれで出来なかった場合は、postgres
の部分を\du
コマンドで確認した全ての権限を持っているユーザーに変更してみて下さい。