iaun
iaun
发布于 2025-12-01 / 396 阅读
16
0

PostgreSQL学习01 - 部署和SQL基础操作

假设

  1. 作者为方便测试使用docker部署,正式环境请使用专用服务器部署

  2. 数据文件存放位置为 /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

部署

注意事项

  1. 默认数据文件位置在 /var/lib/postgresql,需要将它绑定以持久化

  2. 使用环境变量 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

基础操作

  1. 创建用户

postgres=# CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE ROLE
  1. 创建数据库

postgres=# CREATE DATABASE mydb;
CREATE DATABASE
  1. 给用户授予权限

postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
GRANT
  1. 修改数据库owner

postgres=# ALTER DATABASE mydb OWNER TO myuser;
ALTER DATABASE
  1. 列出所有数据库

\l
  1. 切换数据库

\c mydb
  1. 列出表

\dt
  1. 列出所有用户

\du
  1. 查看表结构

\d table
  1. 删除用户

DROP USER myuser;
  1. 删除数据库

DROP DATABASE mydb;


评论