目錄
一、前言
二、前置準備
2.1 服務器環境
2.2 docker環境
三、docker安裝PostgreSQL過程
3.1 獲取PostgreSQL鏡像
3.2 啟動容器
3.2.1 創建數據卷目錄
3.2.2 啟動pg容器
3.3 客戶端測試連接數據庫
四、創建數據庫與授權
4.1 進入PG容器
4.2 PG常用操作命令
4.2.1 進入命令行
4.2.2 常用操作命令
四、寫在文末
一、前言
在實際項目中,PostgreSQL具有很多使用場景,為了方便應用開發時快速接入和調試,需要有PostgreSQL環境,本文演示如何基于linux環境搭建單節點postgresql完整操作過程。
二、前置準備
2.1 服務器環境
基于centos7以上版本的系統,虛擬機或云服務一臺,配置不低于2C4G。
2.2 docker環境
提前在服務器安裝docker環境,后面需要基于docker安裝PostgreSQL。
三、docker安裝PostgreSQL過程
3.1 獲取PostgreSQL鏡像
使用下面的命令獲取鏡像
docker pull postgres
3.2 啟動容器
3.2.1 創建數據卷目錄
為了后續pg數據的持久化,需要提前創建一個數據卷映射目錄
mkdir /usr/local/soft/pg/data
3.2.2 啟動pg容器
使用下面的命令啟動postgresql的容器
docker run -d \--name postgres \-e POSTGRES_USER=root\-e POSTGRES_PASSWORD=123456 \-e ALLOW_IP_RANGE=0.0.0.0/0 \-e POSTGRES_DB=postgres \-v /usr/local/soft/pg/data:/var/lib/postgresql/data \-p 54132:5432 \postgres:latest
參數說明:
-
-d ,以后臺進程啟動;
-
--name ,指定容器的名字為 :root;
-
POSTGRES_USER=postgres ,指定初始化的連接賬戶;
-
POSTGRES_PASSWORD=123456 ,指定初始化的連接密碼;
-
ALLOW_IP_RANGE=0.0.0.0/0 ,指定允許所有的客戶端可以連接;
-
POSTGRES_DB=postgres ,指定默認的數據庫名稱;
-
-v /usr/local/soft/pg/data:/var/lib/postgresql/data ,指定pg數據庫的數據卷;
-
-p 5432:5432 ,容器與宿主機的映射端口,默認為5432 ;
容器運行成功,可以看到啟動了一個pg的容器;
3.3 客戶端測試連接數據庫
本地使用navicat連接pg數據庫,使用上述初始化的連接信息
四、創建數據庫與授權
和mysql在使用的時候類似,為了保證操作pg數據庫的安全性,需要進行相關的授權操作,pg的授權與mysql數據庫的授權有所不同,接下來看具體的操作演示過程。
4.1 進入PG容器
找到容器ID,使用下面的命令進入容器
docker exec -it 容器ID /bin/bash
4.2 PG常用操作命令
4.2.1 進入命令行
進入容器之后,使用下面的命令進入PG的操作命令行,類似于mysql的命令行工具
psql -U postgres -h 服務器IP -p 54132 postgres
輸入密碼,驗證成功后,就來到下面的命令行操作界面:
4.2.2 常用操作命令
1)列出當前所有數據庫
\l
2)列出當前數據庫的所有表
默認情況下,登錄進來使用的是postges這個數據庫,使用下面的命令可以查看所有表
3)切換數據庫
使用下面的命令切換到另一個數據庫
\c 數據庫名稱
4)創建數據庫
CREATE DATABASE 數據庫名稱;
5)創建賬戶
CREATE USER 用戶名 WITH PASSWORD '密碼';
6)賬戶授權
pg數據庫中對于連接的賬戶需要進行授權,有數據庫授權,表授權等,下面分別是數據庫授權,表授權的命令
-
一般下面這兩個命令是連起來用的,即先對數據庫的連接賬戶授權,僅僅授權數據庫還不夠,還需要對數據庫下面的所有表授權才可正常使用;
GRANT CONNECT, CREATE, TEMPORARY ON DATABASE "數據庫名稱" TO 用戶名;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用戶名;
補充說明
- 設置默認權限,使某個用戶對未來在 public 模式下創建的表也擁有全部權限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用戶名;
四、寫在文末
本文通過實際案例操作演示了如何基于Docker搭建pg的完整過程,并補充了pg數據庫操作的常用命令和授權命令,希望對看到的同學有用,本篇到此結束,感謝觀看。
?