0

0

linux怎么安装PostgreSQL_linux配置高级数据库【教程】

尼克

尼克

发布时间:2026-03-13 11:50:03

|

761人浏览过

|

来源于php中文网

原创

推荐使用系统包管理器安装PostgreSQL:Ubuntu/Debian用apt install postgresql postgresql-contrib,CentOS/RHEL 8+用dnf install postgresql-server postgresql-contrib;自行编译易遗漏systemd服务配置、数据目录权限及locale初始化等关键步骤。

linux怎么安装postgresql_linux配置高级数据库【教程】

直接用系统包管理器装,别自己编译

Ubuntu/Debian 用 apt install postgresql postgresql-contrib,CentOS/RHEL 8+ 用 dnf install postgresql-server postgresql-contrib。自己下载源码编译不仅慢,还容易漏掉 systemd 服务配置、默认数据目录权限、locale 初始化这些关键步骤。

常见错误现象:psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed——多半是没运行 postgresql-setup initdb(RHEL)或没执行 sudo pg_createcluster(Debian),导致数据目录压根没初始化。

  • Debian 系发行版会自动创建 postgres 用户和默认集群,启动服务只需 sudo systemctl start postgresql
  • RHEL/CentOS 需手动初始化:sudo postgresql-setup --initdb,否则 systemctl start postgresql 会静默失败
  • 装完立刻检查:sudo -u postgres psql -c "SELECT version();",能返回版本说明服务已跑起来

改监听地址前先关 SELinux 或配策略

想让其他机器连进来?改 postgresql.conf 里的 listen_addresses 是第一步,但 CentOS/RHEL 上默认 SELinux 会拦住非标准端口或跨网段连接,netstat -tlnp | grep :5432 看到监听了,客户端照样连不上。

使用场景:本地开发用 localhost 就够;测试环境要从 Docker 容器或另一台机器访问,必须放开监听 + 放行防火墙 + 配 SELinux。

  • 临时关 SELinux:sudo setenforce 0(仅调试用,重启后恢复)
  • 永久放行 PostgreSQL 端口:sudo semanage port -a -t postgresql_port_t -p tcp 5432
  • 防火墙别只开 5432,还要确认 firewalld zone 正确:sudo firewall-cmd --permanent --add-service=postgresql
  • pg_hba.conf 必须同步加规则,比如 host all all 192.168.1.0/24 md5,光改 listen_addresses 没用

用户密码设错会导致 psql -U 连不上

PostgreSQL 默认禁用密码登录,新用户即使设了密码,pg_hba.conf 里对应规则不是 md5scram-sha-256psql -U myuser -d mydb 就会卡在密码提示或直接报 password authentication failed

PathFinder
PathFinder

AI驱动的销售漏斗分析工具

下载

参数差异:Debian 默认用 peer 认证本地 postgres 用户,RHEL 默认用 ident;两者都不走密码。想统一用密码,得改 pg_hba.conf 对应行的认证方法。

  • 切到 postgres 系统用户再进:sudo -u postgres psql,避免被认证机制挡在外面
  • 在 psql 里设密码:ALTER USER myuser WITH PASSWORD 'xxx';,单引号不能省
  • 改完 pg_hba.conf 后必须 reload:sudo systemctl reload postgresql(不是 restart)
  • 验证是否生效:psql -U myuser -d postgres -h 127.0.0.1(强制走 TCP,绕过 peer/ident)

扩展没启用就用 uuid_generate_v4() 会报函数不存在

很多教程说“装完就能用 UUID”,但 uuid-ossp 扩展默认不激活。直接写 SELECT uuid_generate_v4();,报错就是 function uuid_generate_v4() does not exist,不是没装对,是没启用。

性能影响:启用扩展只是注册函数和类型,不占内存,也不影响启动速度;但 pgcrypto 这类加密扩展如果不用,没必要启用,减少潜在攻击面。

  • 先连进数据库:sudo -u postgres psql mydb
  • 启用扩展:CREATE EXTENSION IF NOT EXISTS "uuid-ossp";(双引号不能少,因为名字带横线)
  • 想全局启用?在 template1 库里执行,新创建的库自动继承:sudo -u postgres psql template1 -c "CREATE EXTENSION \"uuid-ossp\";"
  • 不确定有哪些扩展可用:\dx 查已启用,SELECT * FROM pg_available_extensions; 查全部

真正麻烦的是 pg_hba.conf 的匹配顺序和 reload 时机——改完不 reload,或者规则写在拒绝条目后面,问题就藏得特别深。还有人把密码设成纯数字,结果被 scram-sha-256 认证机制拒绝,报错却只说“authentication failed”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

847

2023.08.22

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

492

2023.10.18

500error怎么解决
500error怎么解决

500error的解决办法有检查服务器日志、检查代码、检查服务器配置、更新软件版本、重新启动服务、调试代码和寻求帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

382

2023.10.25

function是什么
function是什么

function是函数的意思,是一段具有特定功能的可重复使用的代码块,是程序的基本组成单元之一,可以接受输入参数,执行特定的操作,并返回结果。本专题为大家提供function是什么的相关的文章、下载、课程内容,供大家免费下载体验。

499

2023.08.04

js函数function用法
js函数function用法

js函数function用法有:1、声明函数;2、调用函数;3、函数参数;4、函数返回值;5、匿名函数;6、函数作为参数;7、函数作用域;8、递归函数。本专题提供js函数function用法的相关文章内容,大家可以免费阅读。

166

2023.10.07

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

280

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

516

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

416

2024.04.08

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

37

2026.03.12

热门下载

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

精品课程

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号