温馨提示×

centos怎样远程连接postgresql

小樊
48
2026-09-09 10:20:50
栏目: 云计算

在 CentOS 上远程连接 PostgreSQL,通常包含以下几个步骤:开放端口、修改配置、创建用户/授权、以及使用客户端连接。下面以 CentOS 7/8 和 PostgreSQL 12/13/14/15 为例说明。


一、确认 PostgreSQL 已安装并运行

systemctl status postgresql

如果未启动:

systemctl start postgresql
systemctl enable postgresql

二、修改 PostgreSQL 监听地址

1. 修改 postgresql.conf

找到配置文件(路径可能不同):

find / -name postgresql.conf

常见路径:

/var/lib/pgsql/15/data/postgresql.conf

编辑:

vi /var/lib/pgsql/15/data/postgresql.conf

修改或取消注释:

listen_addresses = '*'

'*' 表示监听所有网卡(生产环境可指定 IP)


三、配置允许远程连接(pg_hba.conf)

编辑:

vi /var/lib/pgsql/15/data/pg_hba.conf

在末尾添加(示例):

# 允许某个 IP
host    all    all    192.168.1.100/32    md5

# 允许整个网段
host    all    all    192.168.1.0/24      md5

# 允许所有(不推荐生产)
host    all    all    0.0.0.0/0           md5

四、开放防火墙端口(默认 5432)

CentOS 7/8

firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload

查看:

firewall-cmd --list-ports

如果是云服务器,还要在 安全组 放行 5432 端口。


五、创建远程用户并授权

切换到 postgres 用户:

su - postgres
psql

创建用户和数据库:

CREATE USER remote_user WITH PASSWORD 'StrongPass123';
CREATE DATABASE testdb OWNER remote_user;
GRANT ALL PRIVILEGES ON DATABASE testdb TO remote_user;

六、重启 PostgreSQL

systemctl restart postgresql

七、远程连接 PostgreSQL

1. 使用 psql(Linux / macOS)

psql -h 服务器IP -U remote_user -d testdb

2. 使用 Windows / 图形工具

  • pgAdmin
  • DBeaver
  • Navicat

连接信息:

Host: 服务器IP
Port: 5432
User: remote_user
Password: StrongPass123
Database: testdb

八、常见问题排查

1. 连接被拒绝

  • PostgreSQL 未监听外网
  • 防火墙未放行
  • 云服务器安全组未配置

2. 用户认证失败

  • 密码错误
  • pg_hba.conf 认证方式不是 md5 / scram-sha-256

3. SELinux 影响(少见)

setsebool -P postgresql_connect_any 1

如果你能告诉我:

  • CentOS 版本
  • PostgreSQL 版本
  • 是本地虚拟机 / 云服务器 / 内网

我可以给你更精确的操作命令。

0 踩