安装与部署
Docker、systemd、pg_ctl、云部署。
35 分钟
安装与初始化 Cluster
生产可用 包管理器 或 官方二进制;本地跟练推荐 Docker。与 /roadmaps/postgresql-dba 安装节点对齐。
学习目标
- 用 Docker Compose 启动 PG 16 并持久化数据
- 理解
initdb、数据目录与postgresql.conf - 用
psql完成首次连接与基本\命令
核心概念
Docker Compose 片段
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: dba
POSTGRES_PASSWORD: devpass
POSTGRES_DB: codeforge_pg
ports:
- "5432:5432"
volumes:
- pg_data:/var/lib/postgresql/data
volumes:
pg_data:
docker compose up -d postgres
docker exec -it <container> psql -U dba -d codeforge_pg
物理安装要点(Linux)
sudo -u postgres initdb -D /var/lib/pgsql/16/data
sudo systemctl enable --now postgresql-16
sudo -u postgres createuser --interactive
关键文件:postgresql.conf(参数)、pg_hba.conf(客户端认证)、PGDATA 目录权限须属 postgres 用户。
psql 速查
\l -- 列出数据库
\c dbname -- 切换连接
\du -- 角色列表
\dt app.* -- schema 下表
SELECT version();
与 MySQL/Spring Boot 对照
| 项 | PostgreSQL | MySQL 8 |
|---|---|---|
| 数据目录 | $PGDATA | /var/lib/mysql |
| 初始化 | initdb | mysqld --initialize |
| 配置文件 | postgresql.conf | my.cnf |
| 客户端认证 | pg_hba.conf | mysql.user + bind |
| 默认端口 | 5432 | 3306 |
Spring 实验 profile 示例:jdbc:postgresql://127.0.0.1:5432/codeforge_pg(见 pg-spring),勿替换生产 MySQL URL。
练习
- 启动 compose, 返回 accepting connections