温馨提示×

PostgreSQL如何连接CentOS

小樊
58
2026-08-05 00:07:40
栏目: 云计算

下面按最常见场景给你说明:CentOS 上的 PostgreSQL 如何连接(本地 + 远程),从安装到连接一步步来。


一、在 CentOS 上安装 PostgreSQL(如未安装)

PostgreSQL 15 为例(CentOS 7/8 通用):

# 添加官方仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 安装 PostgreSQL
sudo yum install -y postgresql15-server postgresql15-contrib

# 初始化数据库
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# 启动并设置开机自启
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

二、本地连接 PostgreSQL(最常见)

1️⃣ 切换到 postgres 用户

sudo -i -u postgres

2️⃣ 使用 psql 连接

psql

或指定数据库:

psql -d postgres

✅ 默认使用 peer 认证,不需要密码


三、远程连接 PostgreSQL(重点)

1️⃣ 修改 PostgreSQL 监听地址

编辑配置文件:

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

修改:

listen_addresses = '*'

默认是 localhost,只允许本机


2️⃣ 配置允许远程访问

编辑 pg_hba.conf

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

在末尾添加:

# IPv4 远程连接
host  all  all  0.0.0.0/0  md5

或指定 IP:

host  all  all  192.168.1.0/24  md5

3️⃣ 设置数据库用户密码

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'your_password';

4️⃣ 重启 PostgreSQL

sudo systemctl restart postgresql-15

四、CentOS 防火墙放行 5432 端口

firewalld(CentOS 7/8)

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

iptables(老版本)

iptables -I INPUT -p tcp --dport 5432 -j ACCEPT
service iptables save

五、从客户端连接 PostgreSQL

1️⃣ 使用 psql(Linux)

psql -h 服务器IP -U postgres -d postgres

2️⃣ 使用 DBeaver / Navicat / pgAdmin

  • Host:CentOS 服务器 IP
  • Port:5432
  • User:postgres
  • Password:你设置的密码

六、常见问题排查

❌ 连接被拒绝

could not connect to server

✅ 检查:

  • PostgreSQL 是否启动
  • listen_addresses 是否配置
  • 防火墙是否放行

❌ 密码错误

password authentication failed

✅ 检查:

  • 用户密码是否正确
  • pg_hba.conf 是否使用 md5

❌ 远程连不上但本地可以

✅ 通常是:

  • 防火墙
  • listen_addresses = localhost

七、总结一句话

CentOS 连接 PostgreSQL = 安装 → 配置监听 → 配置 pg_hba → 放行端口 → 使用 psql 或工具连接


如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ PostgreSQL 版本
  • ✅ 本地还是远程连接
  • ✅ 报错信息

我可以直接给你针对你环境的精确配置方案

0