Linux怎么安装PostgreSQL并配置远程访问

阿杰君_9484

阿杰君_9484

2026-06-24

344人浏览

原创

结论:装对版本、初始化数据目录、改postgresql.conf和pg_hba.conf、设密码并开放5432端口——四步缺一不可;少一步远程连接必然失败,常见原因包括用系统旧源、漏initdb、listen_addresses与pg_hba.conf不匹配、密码未设或认证方式错误、防火墙或云安全组未放行。

linux怎么安装postgresql并配置远程访问

直接说结论:装对版本、初始化数据目录、改 postgresql.conf 和 pg_hba.conf 两处配置、设密码并开防火墙 5432 端口——四步缺一不可,少一步远程就连不上。

怎么装 PostgreSQL 才不踩坑

系统自带仓库的 PostgreSQL 版本通常太旧(比如 CentOS 7 自带 9.2),不支持现代认证方式或扩展,必须用官方源:

  • CentOS/RHEL 8+:运行 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm,再禁用系统模块 sudo dnf -qy module disable postgresql
  • CentOS 7:换用阿里镜像源更稳,sudo rpm -Uvh https://mirrors.aliyun.com/postgresql/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm,再替换 repo 文件里的 URL
  • Ubuntu/Debian:加官方源比 apt install postgresql 更可控,避免默认装错主版本

装完别急着启动——postgresql16-server 包只提供二进制,不自动初始化数据目录,跳过这步服务起得起来但根本没数据库。

为什么改了 listen_addresses 还连不上

因为 postgresql.conf 只管“听不听”,真正拦住连接的是 pg_hba.conf。常见错误:

  • listen_addresses = '*' 写了,但 pg_hba.conf 里只有 host all all 127.0.0.1/32 md5 → 只放行本地
  • 追加规则写成 host all all 192.168.1.100 md5(漏了 CIDR 掩码)→ PostgreSQL 启动失败,日志报语法错误
  • 新规则加在已有 local all all peer 规则前面 → 永远匹配不到,白改

正确做法:用 sudo tee -a /var/lib/pgsql/16/data/pg_hba.conf 追加一行,确保在所有 host 规则末尾,例如:host all all 192.168.1.0/24 md5;改完必须 sudo systemctl reload postgresql-16,不是 restart。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

postgres 用户远程登录为什么总提示密码错误

因为安装后 postgres 数据库角色默认无密码,本地靠系统级 peer 认证免密,远程必须走密码认证,且 pg_hba.conf 对应规则必须用 md5 或 scram-sha-256(PostgreSQL ≥ 10)。

  • 切到 postgres 系统用户:sudo -u postgres psql -U postgres
  • 在 psql 里执行:ALTER USER postgres PASSWORD 'YourStrongPass123';
  • 如果报 ERROR: role "postgres" does not exist,先查 \du 确认角色名;有些环境初始化后默认角色是 postgres,但个别打包版本可能不同

密码设完,pg_hba.conf 里对应那行认证方式不能是 trust,否则密码被忽略;也不能是 ident,它依赖系统用户名映射,远程不生效。

验证监听和防火墙是否真通了

别只信 systemctl status 显示 active,要确认端口实际在监听:

  • 查监听状态:sudo ss -tlnp | grep :5432,看到 *:5432 或具体 IP:5432 才算生效
  • 防火墙必须放行 TCP 5432:sudo firewall-cmd --add-port=5432/tcp --permanent && sudo firewall-cmd --reload(CentOS/RHEL);Ubuntu 用 sudo ufw allow 5432
  • 云服务器额外检查安全组——很多连不上是因为云平台层面没放行,和本地防火墙无关
  • SELinux 默认会拦 PostgreSQL 网络访问,临时关掉测试:sudo setenforce 0;生产环境需配策略,不是直接禁用

最常被忽略的是:改完配置不 reload、设了密码但认证方式没同步改、开了防火墙却忘了云安全组。三者任缺其一,客户端看到的都是“Connection refused”或“password authentication failed”。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.10

213

5

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4349

19

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、\l、\c、\dt、\d table_name、\du、\i file_name、\e和\q等。更详细的postgresql常用命令,大家可以访问下面的文章。

2023.11.16

627

3

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有\l、\d、\d5、\di、\ds、\dv、\df、\dn、\db、\dg、\dp、\c、\pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

2023.11.20

1376

6

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

2026.02.12

460

19

PostgreSQL 性能优化与查询执行计划实战
PostgreSQL 性能优化与查询执行计划实战

本专题深入解析PostgreSQL性能优化核心,聚焦查询执行计划的实战应用。通过EXPLAIN命令精准定位瓶颈,结合索引策略、SQL改写与参数调优,系统提升查询效率。从执行计划解读到性能调优全流程,助你掌握数据库性能诊断与优化实战能力。

2026.05.08

150

10

PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践
PostgreSQL 在 Next.js / Go 全栈架构中的工程化实践

本文详解如何利用Next.js(搭配Drizzle ORM)与Go后端构建高性能应用,充分发挥PG在JSONB非结构化存储与pgvector向量检索上的优势。从数据建模到Docker容器化部署,打造支持AI时代的“One Database”工程化解决方案。

2026.05.08

881

10

PostgreSQL高级特性、内核机制与现代数据架构
PostgreSQL高级特性、内核机制与现代数据架构

本专题从MVCC并发控制与WAL日志等内核机制出发,详解JSONB、PostGIS及pgvector等高级特性。探讨如何利用单一引擎支撑关系型、向量及图数据等现代数据架构需求,助您掌握构建高并发、智能化应用的核心技术。

2026.05.08

224

10

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3910

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习