我正在尝试使用 psql 从 Bash 脚本中强行删除 PostgreSQL 9.4.4 数据库:
#!/bin/bash
db="mydb"
psql -d $db -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '$db';"
Run Code Online (Sandbox Code Playgroud)
我正在使用此问题中显示的解决方案,但它不起作用。我看到的是这样的:
Run Code Online (Sandbox Code Playgroud)FATAL: terminating connectoin due to administrator command server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.
我究竟做错了什么?我拥有数据库并且我的用户角色具有“超级用户”属性,如我\du在 Postgres 控制台中所做的那样。
您正在扼杀自己与该声明的联系。您需要添加and pid <> pg_backend_pid()以排除运行该语句的会话:
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = '$db'
and pid <> pg_backend_pid();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4711 次 |
| 最近记录: |