在 CentOS 上连接 PostgreSQL,主要取决于你是本地连接还是远程连接。下面按常见场景一步步说明。
psql --version
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
默认版本可能是
postgresql-15、postgresql-14,具体取决于 CentOS 版本。
PostgreSQL 默认会创建一个 postgres 用户。
sudo -i -u postgres
psql
✅ 成功后会进入:
postgres=#
psql -d 数据库名
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
postgresql.conf路径示例(版本不同路径可能不同):
/var/lib/pgsql/15/data/postgresql.conf
编辑:
sudo vi /var/lib/pgsql/15/data/postgresql.conf
修改:
listen_addresses = '*'
pg_hba.confsudo vi /var/lib/pgsql/15/data/pg_hba.conf
在末尾添加:
# IPv4 remote connections
host all all 0.0.0.0/0 md5
或只允许某个 IP:
host all all 192.168.1.100/32 md5
sudo systemctl restart postgresql
psql -h 服务器IP -U myuser -d mydb
示例:
psql -h 192.168.1.10 -U myuser -d mydb
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
查看端口:
ss -lntp | grep 5432
psql: FATAL: password authentication failed✅ 用户名或密码错误
✅ pg_hba.conf 未配置 md5
could not connect to server✅ PostgreSQL 未启动
✅ 防火墙未放行端口
✅ listen_addresses 未设置
临时关闭测试:
sudo setenforce 0
# 本地
sudo -i -u postgres
psql
# 远程
psql -h IP -U 用户 -d 数据库
如果你愿意,可以告诉我:
我可以给你完全针对你环境的命令。