在 CentOS 上远程连接 PostgreSQL,通常包含以下几个步骤:开放端口、修改配置、创建用户/授权、以及使用客户端连接。下面以 CentOS 7/8 和 PostgreSQL 12/13/14/15 为例说明。
systemctl status postgresql
如果未启动:
systemctl start postgresql
systemctl enable postgresql
postgresql.conf找到配置文件(路径可能不同):
find / -name postgresql.conf
常见路径:
/var/lib/pgsql/15/data/postgresql.conf
编辑:
vi /var/lib/pgsql/15/data/postgresql.conf
修改或取消注释:
listen_addresses = '*'
'*'表示监听所有网卡(生产环境可指定 IP)
编辑:
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
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;
systemctl restart postgresql
psql -h 服务器IP -U remote_user -d testdb
连接信息:
Host: 服务器IP
Port: 5432
User: remote_user
Password: StrongPass123
Database: testdb
pg_hba.conf 认证方式不是 md5 / scram-sha-256setsebool -P postgresql_connect_any 1
如果你能告诉我:
我可以给你更精确的操作命令。