温馨提示×

CentOS怎么连接PostgreSQL

小樊
51
2026-08-31 03:33:33
栏目: 云计算

CentOS 上连接 PostgreSQL,一般分几种常见场景。下面按由浅入深给你说明,你可以对照自己的情况使用。


一、在 CentOS 本机连接 PostgreSQL(最常用)

1️⃣ 确认 PostgreSQL 已安装并运行

ps aux | grep postgres

systemctl status postgresql

如果没启动:

sudo systemctl start postgresql
sudo systemctl enable postgresql

2️⃣ 切换到 postgres 用户

sudo -i -u postgres

3️⃣ 使用 psql 连接数据库

psql

默认进入 postgres 数据库。

指定数据库:

psql -d 数据库名

指定用户:

psql -U 用户名 -d 数据库名

二、使用密码方式连接 PostgreSQL

1️⃣ 设置 postgres 用户密码

进入 psql:

psql

执行:

ALTER USER postgres PASSWORD 'new_password';

2️⃣ 修改 pg_hba.conf(重要)

编辑配置文件(路径可能略有不同):

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

确认有类似内容:

local   all   all   md5
host    all   all   127.0.0.1/32   md5

保存后重启 PostgreSQL:

sudo systemctl restart postgresql

3️⃣ 使用密码连接

psql -U postgres -d postgres -h 127.0.0.1

三、从远程客户端连接 CentOS 上的 PostgreSQL

1️⃣ 修改 postgresql.conf

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

修改:

listen_addresses = '*'

2️⃣ 修改 pg_hba.conf(允许远程)

在文件末尾添加:

host    all   all   0.0.0.0/0   md5

(生产环境建议限制 IP)


3️⃣ 开放防火墙端口(默认 5432)

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

4️⃣ 重启 PostgreSQL

sudo systemctl restart postgresql

5️⃣ 远程连接测试

psql -h CentOS_IP -U postgres -d 数据库名

四、使用图形化工具连接(如 DBeaver / Navicat)

连接参数示例:

Host: CentOS服务器IP
Port: 5432
Database: 数据库名
User: postgres
Password: 密码

五、常见问题排查

❌ 连接被拒绝

could not connect to server

✅ 检查:

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

❌ 密码错误

password authentication failed

✅ 检查:

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

六、快速总结命令

# 启动
systemctl start postgresql

# 切换用户
sudo -i -u postgres

# 连接
psql -U 用户名 -d 数据库名 -h IP

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

  • ✅ PostgreSQL 版本
  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是本机连还是远程连

我可以给你完全对应的命令配置

0