在 CentOS 上连接 PostgreSQL,一般分几种常见场景。下面按由浅入深给你说明,你可以对照自己的情况使用。
ps aux | grep postgres
或
systemctl status postgresql
如果没启动:
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -i -u postgres
psql
默认进入 postgres 数据库。
指定数据库:
psql -d 数据库名
指定用户:
psql -U 用户名 -d 数据库名
进入 psql:
psql
执行:
ALTER USER postgres PASSWORD 'new_password';
编辑配置文件(路径可能略有不同):
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
psql -U postgres -d postgres -h 127.0.0.1
sudo vi /var/lib/pgsql/data/postgresql.conf
修改:
listen_addresses = '*'
在文件末尾添加:
host all all 0.0.0.0/0 md5
(生产环境建议限制 IP)
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl restart postgresql
psql -h CentOS_IP -U postgres -d 数据库名
连接参数示例:
Host: CentOS服务器IP
Port: 5432
Database: 数据库名
User: postgres
Password: 密码
could not connect to server
✅ 检查:
listen_addresses 是否配置password authentication failed
✅ 检查:
md5# 启动
systemctl start postgresql
# 切换用户
sudo -i -u postgres
# 连接
psql -U 用户名 -d 数据库名 -h IP
如果你愿意,可以告诉我:
我可以给你完全对应的命令配置。