假设
作者为方便测试使用docker部署,正式环境请使用专用服务器部署
数据文件存放位置为 /root/postgresql/data
查找和拉取 docker 镜像
Postgres 的镜像可以在 docker hub 查找:https://hub.docker.com/_/postgres
本文撰写时目前最新的版本是 18.1,有如下标签
18.1, 18, latest, 18.1-trixie, 18-trixie, trixie
18.1-bookworm, 18-bookworm, bookworm
18.1-alpine3.22, 18-alpine3.22, alpine3.22, 18.1-alpine, 18-alpine, alpine
18.1-alpine3.21, 18-alpine3.21, alpine3.21
这些跟着的英文就是发行版的不同,这里选择 Debian 13 trixie 的镜像:18.1-trixie,即使用如下指令拉取:
docker pull postgres:18.1-trixie部署
注意事项
默认数据文件位置在 /var/lib/postgresql,需要将它绑定以持久化
使用环境变量 POSTGRES_PASSWORD 设定初次部署时默认用户 postgres 的密码
使用如下指令启动:
docker run \
--name postgres \
--restart always \
-p 5432:5432 \
-v /root/postgresql/data:/var/lib/postgresql \
-e POSTGRES_PASSWORD='mypassword' \
-d postgres:18.1-trixie注意修改 POSTGRES_PASSWORD 密码参数,更多参数请参考 docker hub 文档
连接到 DB
使用如下指令连接到 DB 交互:
docker exec -it postgres psql -U postgres基础操作
创建用户
postgres=# CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE ROLE创建数据库
postgres=# CREATE DATABASE mydb;
CREATE DATABASE给用户授予权限
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
GRANT修改数据库owner
postgres=# ALTER DATABASE mydb OWNER TO myuser;
ALTER DATABASE列出所有数据库
\l切换数据库
\c mydb列出表
\dt列出所有用户
\du查看表结构
\d table删除用户
DROP USER myuser;删除数据库
DROP DATABASE mydb;