讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么安装配置PostgreSQL关系型数据库

梦静君_2881

梦静君_2881

发布时间:2026-10-22 11:12:30

|

229人浏览过

|

来源于php中文网

原创

PostgreSQL安装后需初始化并修改postgresql.conf和pg_hba.conf才能正常使用;Ubuntu/Debian用apt自动初始化,RHEL/CentOS/Rocky需手动运行对应版本的postgresql-X-setup initdb,listen_addresses与pg_hba.conf必须协同配置并reload生效,且postgres用户须显式设置密码。

linux怎么安装配置postgresql关系型数据库

装 PostgreSQL 不是“装完就能用”,关键在初始化和两处配置文件的修改——postgresql.conf 和 pg_hba.conf。跳过任一环节,远程连不上、本地连不上、甚至服务起不来,都是常态。

怎么选对安装方式(Ubuntu/Debian vs RHEL/CentOS/Rocky)

发行版决定命令和路径,不能混用:

  • Ubuntu/Debian:直接 sudo apt install postgresql postgresql-contrib,自动创建 postgres 用户、初始化数据目录(通常在 /var/lib/postgresql/*/main),服务名就是 postgresql
  • RHEL/CentOS/Rocky 8+:必须加官方源,否则装的是老旧的 9.x 或 10.x:
    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %rhel)-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    sudo dnf -qy module disable postgresql
    再装指定版本,例如 postgresql16-server;安装后必须手动运行 sudo /usr/pgsql-16/bin/postgresql-16-setup initdb,否则服务启动失败
  • CentOS 7 / RHEL 7:用 yum,仓库 URL 中把 EL-$(rpm -E %rhel) 换成 EL-7,其他流程一致

为什么 initdb 不能跳、也不能用错路径

initdb 是初始化数据库集群的唯一入口,不是“可选步骤”。它会生成 data 目录、默认配置、系统表和 postgres 数据库。常见错误:

  • 没运行就启服务 → systemctl start postgresql-16 报错 “data directory has wrong ownership” 或直接失败
  • 手动创建空 data 目录再 chown → 缺少必要文件结构,psql 连上后看不到 postgres 库或报 database "postgres" does not exist
  • 用错版本命令,比如 postgresql-15-setup initdb 却装了 16 → 找不到对应二进制,提示 command not found

正确做法:确认安装包版本(如 postgresql16-server),就用对应前缀的 setup 命令,路径由它自动推导,不手动指定 -D。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

listen_addresses 和 pg_hba.conf 怎么配才生效

只改 listen_addresses = '*' 不够,pg_hba.conf 才真正放行连接。两者缺一不可,且 reload 顺序有要求:

  • postgresql.conf 中改完 listen_addresses(推荐写具体内网 IP,如 'localhost,192.168.1.100',不用 * 上生产)后,必须 sudo systemctl reload postgresql-16(不是 restart)
  • pg_hba.conf 新增规则要加在已有 local 或 host 规则之后,因为匹配是自上而下;例如追加:
    host all all 192.168.1.0/24 md5
  • 改完 pg_hba.conf 同样要 reload,否则新规则不加载;如果 reload 失败,大概率是语法错误(比如少空格、多逗号)或权限不对(该文件必须属 postgres:postgres)
  • 验证是否监听成功:sudo ss -tlnp | grep 5432,看到 *:5432 或具体 IP 表示监听已开

postgres 用户没密码?远程连接一定失败

Linux 包管理器安装的 PostgreSQL 默认禁用 postgres 用户的密码认证,即使 pg_hba.conf 允许 md5,登录时也会提示 password authentication failed for user "postgres":

  • 必须先切换用户并设密码:sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'YourStrongPass123';"
  • 防火墙必须放行:sudo firewall-cmd --add-port=5432/tcp --permanent && sudo firewall-cmd --reload(firewalld)或 sudo ufw allow 5432(ufw)
  • 客户端连接测试别用 psql -h localhost -U postgres,它走的是 Unix socket;要用真实 IP:psql -h 192.168.1.100 -U postgres -d postgres
  • 如果仍拒连,检查 pg_hba.conf 是否有更早的 reject 规则覆盖了你的允许行

最容易被忽略的是:改完两个配置文件后忘记 reload,或者 reload 失败却没看日志(journalctl -u postgresql-16 -n 20);reload 不报错≠配置生效,得验证监听和连接行为。

热门AI工具

更多
立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

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

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

233

2023.10.10

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

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

4549

2023.11.02

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

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

647

2023.11.16

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的相关内容,可以阅读本专题下面的文章。

1396

2023.11.20

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

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

480

2026.02.12

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

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

150

2026.05.08

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

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

901

2026.05.08

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

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

244

2026.05.08

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

0

2026.10.21

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Linux网络安全之防火墙技术汇总
Linux网络安全之防火墙技术汇总

共31课时 | 4.2万人学习

ubuntu官方总文档
ubuntu官方总文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn