PostgreSQL保姆级下载安装指南
目录前言一、前置准备版本选择与核心说明1.1 版本选择建议1.2 核心前置依赖二、分平台标准安装步骤2.1 Linux 系统安装生产环境首选2.1.1 Debian/Ubuntu 系列Ubuntu 20.04/22.04/24.04、Debian 11/122.1.2 RHEL/CentOS/Rocky Linux/AlmaLinux 系列2.2 Windows 系统安装本地开发首选2.3 macOS 系统安装开发者首选2.3.1 Homebrew 安装推荐2.3.2 官方 DMG 包安装三、安装后核心配置3.1 核心配置文件说明3.2 重置超级用户密码3.3 配置远程访问步骤 1修改监听地址步骤 2配置客户端访问规则步骤 3重启服务生效步骤 4放行防火墙与安全组3.4 基础性能优化四、高频踩坑与排障指南4.1 远程连接失败排查步骤4.2 密码认证失败4.3 服务启动失败4.4 初始化数据库失败五、生产环境最佳实践End前言作为全球最先进的开源关系型数据库PostgreSQL简称 PG凭借完全兼容 ACID、强大的扩展能力、对 JSON / 地理信息 / 时序数据的原生支持以及零成本的开源协议成为个人开发者、中小企业乃至大型企业的数据库首选。本文将覆盖Windows、Linux、macOS三大主流平台的官方标准安装方式从版本选择、安装步骤、核心配置到排障方案、生产最佳实践帮你一次性完成从零基础安装到生产可用的全流程落地。本文所有命令与配置均基于 PostgreSQL 最新版本验证兼容 14 以上主流版本。一、前置准备版本选择与核心说明https://www.postgresql.org/https://www.postgresql.org/1.1 版本选择建议PostgreSQL 全球开发组每年发布一个大版本每个大版本提供 5 年官方安全与 bug 修复支持生产环境优先选择稳定长期支持版本避免 Beta 版与即将停止维护EOL的版本。版本类型推荐选择适用场景生产环境PostgreSQL 17.x/16.x稳定性优先官方支持周期长企业级业务首选学习测试最新稳定版体验新特性适配个人项目、课程学习老项目兼容项目适配的最低 LTS 版本避免版本差异导致的语法、驱动兼容性问题避坑提醒不要直接使用 Linux 系统自带的PostgreSQL版本系统内置源的版本通常严重滞后比如 CentOS 7 默认仅提供 9.2 版本存在大量已知安全漏洞与功能缺失务必使用官方源安装。1.2 核心前置依赖Linux需 root 或 sudo 权限确保系统能访问官方软件源WindowsWindows 10/11、Windows Server 2016管理员权限macOSmacOS 12推荐安装 Homebrew 包管理器二、分平台标准安装步骤2.1 Linux 系统安装生产环境首选Linux 是 PostgreSQL 生产环境的主流部署平台本文覆盖 Debian/Ubuntu、RHEL/CentOS/Rocky Linux 两大主流发行版均采用官方源安装保证版本最新、安全合规。2.1.1 Debian/Ubuntu 系列Ubuntu 20.04/22.04/24.04、Debian 11/121.更新系统并安装基础依赖sudo apt update sudo apt install -y ca-certificates gnupg2 wget lsb-release2.导入官方 GPG 密钥添加官方软件源# 导入PG官方GPG密钥 curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg # 添加官方源 echo deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list3.安装 PostgreSQL 服务器与客户端sudo apt update # 安装最新稳定版如需指定版本将postgresql改为postgresql-17即可 sudo apt install -y postgresql postgresql-contrib4.验证安装与服务状态# 查看服务状态安装完成后会自动启动并设置开机自启 sudo systemctl status postgresql # 查看已安装的版本 psql --version说明Debian/Ubuntu 安装完成后会自动创建postgres系统用户、默认数据库实例数据目录默认位于/var/lib/postgresql/版本号/main。2.1.2 RHEL/CentOS/Rocky Linux/AlmaLinux 系列1.安装官方仓库RPM包# 以Rocky Linux 9/CentOS 9为例其他版本替换对应版本号即可 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # CentOS 7 请使用以下命令 # sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2.安装 PostgreSQL 服务器与客户端# 安装最新稳定版如需指定版本改为postgresql18-server即可 sudo dnf install -y postgresql-server postgresql-contrib # CentOS 7 请使用 yum 替代 dnf3.手动初始化数据库实例关键区别RHEL 系列安装完成后不会自动初始化实例必须手动执行初始化命令sudo /usr/pgsql-17/bin/postgresql-17-setup initdb4.启用并启动服务# 设置开机自启 sudo systemctl enable --now postgresql-17 # 查看服务状态 sudo systemctl status postgresql-17 # 验证版本 psql --version2.2 Windows 系统安装本地开发首选Windows 平台推荐使用 EnterpriseDB 提供的官方图形化安装包一键完成安装、配置与工具集成无需手动处理环境变量。1.下载官方安装包访问PostgreSQL 官方下载页选择对应系统架构的最新稳定版安装包下载后以管理员身份运行安装程序。2.图形化安装步骤1.选择安装版本2.选择安装目录避坑提醒不要使用包含中文、空格、特殊字符的路径推荐默认路径C:\Program Files\PostgreSQL\版本号3.选择安装组件默认全选即可包含 PostgreSQL Server、pgAdmin4 图形化管理工具、Stack Builder 扩展管理器、命令行工具4.选择数据目录建议与安装目录分盘存放避免系统盘故障导致数据丢失5.设置超级用户postgres的密码务必设置强密码牢记该密码后续登录必须使用6.设置数据库端口默认 5432无特殊需求无需修改如需修改请确保端口未被占用7.设置数据库默认 locale推荐选择Chinese (Simplified, China)或默认Default locale点击下一步完成安装。点击取消后续是引导下载第三方配置的可以先不下载以后用到再下。8.验证安装安装完成后可通过开始菜单打开pgAdmin4图形化工具或打开SQL Shell (psql)输入密码后成功登录即代表安装完成。点击add new Server或者使用postgres管理员的也可以。可以看到是可以正常使用的不想用这种可视化界面的可以使用navicat或者datagrip工具。2.3 macOS 系统安装开发者首选macOS 平台有两种主流安装方式优先推荐 Homebrew 安装操作简单、便于版本管理。2.3.1 Homebrew 安装推荐1.若未安装 Homebrew先执行以下命令安装 Homebrew/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)2.安装 PostgreSQL# 安装最新稳定版 brew install postgresql # 如需指定版本使用 brew install postgresql173.启动服务并设置开机自启brew services start postgresql # 查看服务状态 brew services list4.验证安装psql --version # 直接登录默认数据库 psql postgres2.3.2 官方 DMG 包安装如需图形化安装可访问PostgreSQL 官方 macOS 下载页下载官方 DMG 安装包按照向导完成安装步骤与 Windows 图形化安装一致安装完成后会自动集成 pgAdmin4 管理工具。三、安装后核心配置安装完成仅代表程序部署完成想要正常使用、尤其是开放远程访问必须完成以下核心配置所有配置均适配全平台仅配置文件路径有差异。3.1 核心配置文件说明PostgreSQL 的所有核心配置都集中在两个文件中修改后必须重启服务才能生效postgresql.conf数据库主配置文件控制监听地址、端口、内存、日志等全局配置pg_hba.conf客户端访问控制配置文件控制哪些 IP、用户可以访问数据库以及认证方式配置文件默认路径Linux Debian/Ubuntu/etc/postgresql/版本号/main/Linux RHEL/CentOS/var/lib/pgsql/版本号/data/Windows安装目录/data/macOS Homebrew/opt/homebrew/var/postgresql版本号/3.2 重置超级用户密码安装完成后默认postgres数据库超级用户的密码未强制设置生产环境必须先重置强密码1.切换到postgres系统用户Linux/macOSsudo su - postgres2.登录 psql 命令行客户端psql3.执行 SQL 命令重置密码-- 替换为你的强密码建议包含大小写、数字、特殊字符长度不少于8位 ALTER USER postgres WITH PASSWORD YourPassword2026;4.退出 psql\q3.3 配置远程访问默认情况下PostgreSQL 仅允许本地127.0.0.1访问如需远程连接比如应用服务器、本地开发工具连接服务器数据库需完成以下配置步骤 1修改监听地址编辑postgresql.conf文件找到listen_addresses配置项修改为# 允许所有IP访问生产环境建议替换为指定的IP段比如192.168.1.0/24多个地址用逗号分隔 listen_addresses * # 可选修改默认端口生产环境建议修改降低被扫描的风险 port 5432步骤 2配置客户端访问规则编辑pg_hba.conf文件在文件末尾添加访问规则推荐配置如下# 格式TYPE DATABASE USER ADDRESS METHOD # 允许所有用户、所有IP访问所有数据库使用scram-sha-256加密认证 host all all 0.0.0.0/0 scram-sha-256 # 生产环境推荐最小权限配置仅允许指定IP的应用用户访问指定数据库 # host your_db your_user 192.168.1.10/32 scram-sha-256安全说明scram-sha-256是 PostgreSQL 10 默认的加密认证方式安全性远高于老旧的 md5严禁使用 trust 无密码认证方式。步骤 3重启服务生效# Linux Debian/Ubuntu sudo systemctl restart postgresql # Linux RHEL/CentOS sudo systemctl restart postgresql-17 # macOS Homebrew brew services restart postgresql # Windows服务面板重启PostgreSQL服务步骤 4放行防火墙与安全组远程连接失败 90% 是因为防火墙未放行1.Linux 防火墙放行# Debian/Ubuntu ufw防火墙 sudo ufw allow 5432/tcp sudo ufw reload # RHEL/CentOS firewalld防火墙 sudo firewall-cmd --add-port5432/tcp --permanent sudo firewall-cmd --reload2.Windows 防火墙打开控制面板 - 系统和安全 -Windows Defender 防火墙 - 高级设置添加入站规则放行 5432 端口。3.云服务器务必在云服务商控制台的安全组 / 网络 ACL 中放行 5432 端口的入站流量。3.4 基础性能优化默认配置仅适配低配置环境生产环境需根据服务器硬件调整核心参数以下为通用优化建议适用于专用数据库服务器编辑postgresql.conf文件修改以下核心参数# 共享缓冲区推荐设置为系统内存的25%比如32G内存设置为8GB shared_buffers 8GB # 单个操作的工作内存根据并发数调整推荐设置为系统内存的4% / 最大并发数 work_mem 64MB # 维护操作内存比如建索引、VACUUM推荐设置为系统内存的10%最大不超过4GB maintenance_work_mem 2GB # 优化器缓存大小推荐设置为系统内存的75%告诉优化器系统有多少内存可用 effective_cache_size 24GB # 开启WAL归档用于备份恢复生产环境必须开启 wal_level replica # 开启自动清理避免表膨胀默认开启请勿关闭 autovacuum on四、高频踩坑与排障指南4.1 远程连接失败排查步骤先检查服务是否正常启动systemctl status postgresql确保服务处于 running 状态检查listen_addresses是否配置正确重启服务后生效检查pg_hba.conf的认证规则是否正确认证方式是否为scram-sha-256用telnet 服务器IP 5432测试端口是否通不通则排查防火墙、安全组是否放行CentOS/RHEL 系统检查 SELinux 是否拦截可临时关闭setenforce 0测试如需长期使用需配置 SELinux 规则。4.2 密码认证失败确认密码输入正确区分大小写检查pg_hba.conf的认证方式若使用scram-sha-256需确保密码是用该方式加密的重置密码即可解决确认登录的用户名正确默认超级用户是postgres不是系统 root 用户。4.3 服务启动失败Linux检查数据目录权限必须为postgres用户所有权限为 700执行chown -R postgres:postgres 数据目录 chmod 700 数据目录修复Windows检查数据目录是否有中文、空格确保 postgres 服务用户有数据目录的读写权限检查端口是否被其他程序占用修改postgresql.conf的 port 参数更换端口。4.4 初始化数据库失败核心原因是数据目录权限不足或目录非空确保数据目录为空且归属 postgres 用户权限设置正确。五、生产环境最佳实践安全加固优先禁止 postgres 超级用户远程登录仅本地使用遵循最小权限原则给应用用户仅分配业务所需的权限严禁授予 superuser 权限定期修改密码开启密码复杂度策略关闭不必要的扩展生产环境严禁使用 0.0.0.0/0 全 IP 放行仅允许业务服务器 IP 段访问。数据安全保障数据目录与系统盘分盘存放避免系统盘占满导致数据库宕机、数据损坏配置定时全量备份 WAL 增量备份定期执行备份恢复测试确保备份可用核心业务开启主从复制避免单点故障保障业务连续性。性能与稳定性优化根据服务器硬件、业务场景定制优化内核参数与数据库配置配置合理的日志策略开启慢查询日志定期排查性能问题定期执行 VACUUM ANALYZE避免表膨胀保证统计信息准确搭建监控体系PrometheusGrafana实时监控连接数、QPS、内存、磁盘、延迟等核心指标。EndPostgreSQL 的安装本身并不复杂真正决定数据库稳定性与安全性的是安装后的配置规范与最佳实践落地。如果想要深入学习 PostgreSQL官方文档是最权威的学习资料。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2427413.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!