5433 是什么
PostgreSQL 的标准端口是 5432,5433 是运维里约定俗成的「第二个实例」端口:源码编译的第二套实例、pg_upgrade 升级验证库、主备并存或多版本并行环境,管理员习惯把新实例挂在 5433 上避免与生产实例冲突。它不是 IANA 分配的标准端口,纯属惯例,但 PostgreSQL 生态里的工具与文档普遍按这个惯例理解,看到 5433 先想到『另一个 PG 实例』通常是对的。
基本信息
| 服务 | PostgreSQL 第二实例(部分兼容数据库也沿用) |
|---|---|
| 端口/协议 | TCP 5433(约定俗成,非标准注册) |
| 配置位置 | postgresql.conf 中的 port 参数 |
| 相关端口 | 5432 默认实例;6432 常为 pgbouncer 连接池 |
| 权限要求 | 数据库用户;改端口需实例属主与 root |
| 安全等级 | 与 5432 同级,须限制来源并强制口令或证书认证 |
典型使用场景
- pg_upgrade 演练:生产 5432 不动,新版本实例挂 5433 做兼容性验证
- 同一主机跑多版本 PostgreSQL,开发、测试、生产共存
- Debian/Ubuntu 的 postgresql-common 多集群,端口按集群顺序递增分配
- 从其它数据库迁移到 PG 时的并行对账实例
- 逻辑订阅或只读副本的临时目标库
确认实例归属
确认实例归属
pg_lsclusters # Debian/Ubuntu 查看集群与端口分配
psql -p 5433 -c 'SELECT version();' # 确认这个实例的版本
psql -h 10.0.1.20 -p 5433 -U app -d appdb -c '\dt' # 指定主机与端口连接
ss -lntp 'sport = :5433' # 核对监听地址与归属进程
# postgresql.conf 片段:port = 5433,并确认 listen_addresses 只绑定必要网卡
# pg_hba.conf 中为该实例单独写认证规则,不要直接复制生产规则常见现象与处置
| 现象 | 可能原因 | 处置方向 |
|---|---|---|
| 连上却看到错误的数据 | 脚本硬编码 5433 打到了演练库 | 连接串显式区分环境,别用固定端口 |
| 实例启动失败 | 5433 已被其它进程占用 | 查占用者后改端口或停冲突服务 |
| 本机能连、远端连不上 | listen_addresses 未放开或防火墙未放行 | 改配置并放行对应端口 |
| 认证被拒 | pg_hba.conf 没为新实例写规则 | 按业务网段补写 host 规则 |
Debian/Ubuntu 的 postgresql-common 会自动为每个集群分配端口,第二个集群通常是 5433,用 pg_lsclusters 查看即可,避免手改配置与自动分配打架。
把 5433 当成『测试库』就放宽认证是典型事故来源:测试实例里常复制了生产数据,认证强度与网络限制应与 5432 完全同级。