1. Postgres 數據庫介紹
PostgreSQL(又稱 Postgres)是一種強大、開源的關系型數據庫管理系統(RDBMS),它具備高度的可靠性、穩定性和可擴展性,主要特點如下:
- 開源:PostgreSQL 是基于開源許可證發布的,任何人都可以免費使用、修改和分發它。
- 關系型數據庫:PostgreSQL 是一種關系型數據庫,支持 SQL 查詢語句,具有強大的數據處理能力。
- 可擴展性:PostgreSQL 支持多種插件擴展,可以滿足各種不同規模和需求的應用場景。
- 支持復雜數據類型:除了傳統的數據類型外,PostgreSQL 還支持數組、JSON、XML 等復雜數據類型。
- 事務支持:PostgreSQL 提供完整的 ACID 事務支持,確保數據的一致性和可靠性。
- 觸發器和存儲過程:支持觸發器和存儲過程,可以在數據庫層面實現業務邏輯。
- 并發控制:具備強大的并發控制能力,能夠處理大量并發訪問請求。
- 安全性:提供強大的用戶認證和權限管理能力,確保數據安全。
- 擴展性:可以輕松地通過擴展模塊來增加額外的功能,如全文搜索、地理信息系統等。
PostgreSQL 官網:https://www.postgresql.org/
資料推薦
- 💡大模型中轉API推薦
- ?中轉使用教程
2. 不同環境下的 Postgres 數據庫安裝
2.1 Windows 下 Postgres 安裝
Windows/Mac 下支持使用可執行文件快速安裝,安裝后像普通軟件一樣啟動 Postgres 即可。
下載地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads。
安裝后可通過 pgAdmin 工具來連接 PostgreSQL 數據庫。默認安裝的 PostgreSQL 會開機自啟,可以通過以下步驟關閉開機自啟:
- 按下 win+r 打開運行對話框,輸入 services.msc 并回車。
- 找到 postgres-x64-16,右擊選擇 屬性,將啟動方式修改為 手動。
- 可以右擊選擇 停止,關閉 postgres 服務。
Windows 下的啟動與停止命令:
pg_ctl start -D "D:\Software\PostgreSQL\16\data"
pg_ctl stop -D "D:\Software\PostgreSQL\16\data"
- -D 參數告訴 pg_ctl 命令應該使用哪個目錄中的數據文件和配置文件。
- 也可以寫成 bat 批處理,快速實現啟動+關閉。
啟動 bat:
@echo off
set PG_PATH="D:\Software\PostgreSQL\16\bin"
set PG_DATA="D:\Software\PostgreSQL\16\data"echo Starting PostgreSQL...
%PG_PATH%\pg_ctl.exe start -D %PG_DATA%
echo PostgreSQL started.
停止 bat:
@echo off
set PG_PATH="D:\Software\PostgreSQL\16\bin"
set PG_DATA="D:\Software\PostgreSQL\16\data"echo Stoping PostgreSQL...
%PG_PATH%\pg_ctl.exe stop -D %PG_DATA%
echo PostgreSQL stoped.
2.2 Ubuntu 下 Postgres 安裝
對于 Debian 的系統(如 Ubuntu),可以使用如下命令:
sudo apt update
sudo apt install postgresql postgresql-contrib
檢測 PostgreSQL 是否啟動:
sudo systemctl status postgresql
通過以下兩個命令啟動或者停止 PostgreSQL 服務:
sudo systemctl start postgresql
sudo systemctl stop postgresql
安裝完成后,可以通過 postgresql 提供命令工具 psql 連接到 PostgreSQL 數據庫,亦或者使用 pgAdmin 可視化界面進行連接:
psql -U postgres -h localhost -W
也可以通過切換到 postgres 用戶直接運行 psql 命令:
sudo -i -u postgres
psql
在 psql 中修改 postgres 密碼:
\password postgres
如果無法通過 psql -U postgres 進行登錄,則大概率是 postgresql 僅開啟了本地登錄,可以通過編輯 pg_hba.conf 修改配置:
sudo vim /etc/postgresql/<版本號>/main/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
PostgreSQL 中常見的身份驗證方法如下:
- peer:僅適用于本地連接。客戶端必須作為相同的操作系統用戶連接。例如,如果你以 postgres 用戶登錄操作系統,那么連接到數據庫時也必須以 postgres 用戶身份。
- md5:使用MD5哈希進行密碼驗證。客戶端必須提供正確的密碼,密碼在傳輸過程中會被加密。
- password:以明文方式傳輸密碼進行驗證。不推薦使用,因為密碼在網絡上以明文形式傳輸,安全性較低。
- trust:不需要密碼,直接允許連接。不推薦在生產環境中使用,因為安全性較低。
2.3 Docker 快捷安裝 PostgreSQL
Docker 中安裝 PostgreSQL 非常簡單,官方配置了鏡像支持一件安裝。
首先,從 Docker Hub 上拉去 PostgreSQL 的官方鏡像:
docker pull postgres
然后運行 PostgreSQL 容器:
docker run --name postgres-dev -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres
停止與開啟 PostgreSQL 容器:
docker start postgres-dev
docker stop postgres-dev
Docker 刪除鏡像與刪除容器命令:
docker rmi <鏡像id或名稱>
docker rm <容器id或名稱>