一、數據庫搭建
1、yum 指定目錄安裝
https://blog.csdn.net/llwy1428/article/details/105143053
2、yum 直接安裝
https://blog.csdn.net/llwy1428/article/details/102486414
3、編譯安裝
https://blog.csdn.net/llwy1428/article/details/95444151
4、PostgreSql 基本操作
https://blog.csdn.net/llwy1428/article/details/102598732
二、遇到的問題
在PostgreSQL 9.2 及以上版本,執行下面的語句:
postgres=# drop database dbtest;
# 執行刪除指定數據庫的時候,報以下錯誤
ERROR: database "dbtest" is being accessed by other users
DETAIL: There is 2 other session using the database.
或者使用 Navicat 等第三方數據庫連接工具,刪除指定數據庫的時候報以下錯誤:
說明此時有兩個客戶端在連接此數據庫,此時不能刪除數據庫。
如果確定要強制刪除此數據庫,那麼執行如下命令:
postgres=# SELECT pg_terminate_backend(pg_stat_activity.pid)
postgres-# FROM pg_stat_activity
postgres-# WHERE datname='dbtest' AND pid<>pg_backend_pid();
pg_terminate_backend
----------------------
t
t
t
(3 rows)
執行上面的語句之後,在執行DROP操作,就可以刪除數據庫了。
上面語句說明:
pg_terminate_backend:用來終止與數據庫的連接的進程id的函數。
pg_stat_activity:是一個系統表,用於存儲服務進程的屬性和狀態。
pg_backend_pid():是一個系統函數,獲取附加到當前會話的服務器進程的ID。
此時再執行刪除數據庫的操作:
postgres=# drop database dbtest;
DROP DATABASE
強制刪除數據庫成功!
至此, 刪除數據庫報錯:有 N 個其它會話正在使用數據庫的問題已順利解決!
擴展
1、yum 安裝、配置 PgAdmin4
https://blog.csdn.net/llwy1428/article/details/102486511
2、數據庫安裝擴展