PGsql安装教程
一、目标安装方案最终会得到项目说明PostgreSQL版本14.x安装方式源码编译安装依赖安装全部离线RPM编译目录/opt/pgsql_make安装目录/opt/pgsql14数据目录/opt/pgsql14/data服务管理systemd用户postgres二、先检查系统是否具备编译环境先创建检测脚本mkdir /opt/pgsql_make vi /opt/pgsql_make/check_pgsql_env.sh写入#!/bin/bash # # PostgreSQL 14 编译环境检测脚本 # 说明 # 1. 区分【必须】与【可选】依赖 # 2. 显示缺失原因与用途 # 3. 兼容 openEuler / CentOS / Kylin / RHEL # echo echo PostgreSQL 14 编译安装环境检测 echo must_lack0 optional_lack0 # --------------------------------------------------------- # 输出颜色 # --------------------------------------------------------- RED\033[31m GREEN\033[32m YELLOW\033[33m BLUE\033[36m RESET\033[0m # --------------------------------------------------------- # 检测命令 # 参数: # 1: 命令 # 2: 是否必须(must/optional) # 3: 作用说明 # --------------------------------------------------------- check_cmd() { local cmd$1 local level$2 local desc$3 if command -v ${cmd} /dev/null 21; then echo -e ${GREEN}[OK]${RESET} 命令: ${cmd} else if [ ${level} must ]; then echo -e ${RED}[必须,且缺失]${RESET} 命令: ${cmd} echo -e 作用: ${desc} must_lack1 else echo -e ${YELLOW}[可选,缺失]${RESET} 命令: ${cmd} echo -e 作用: ${desc} optional_lack1 fi fi } # --------------------------------------------------------- # 检测RPM包 # 参数: # 1: 包名 # 2: 是否必须(must/optional) # 3: 作用说明 # --------------------------------------------------------- check_rpm() { local pkg$1 local level$2 local desc$3 if rpm -q ${pkg} /dev/null 21; then echo -e ${GREEN}[OK]${RESET} RPM: ${pkg} else if [ ${level} must ]; then echo -e ${RED}[必须,且缺失]${RESET} RPM: ${pkg} echo -e 作用: ${desc} must_lack1 else echo -e ${YELLOW}[可选,缺失]${RESET} RPM: ${pkg} echo -e 作用: ${desc} optional_lack1 fi fi } echo echo 基础编译工具必须 check_cmd gcc must C语言编译器PostgreSQL核心编译必须 check_cmd g optional 提供C编译支持部分扩展可能需要 check_cmd make must 执行Makefile编译流程 check_cmd ld must GNU链接器生成最终可执行文件 check_cmd perl must PostgreSQL部分构建脚本依赖Perl check_cmd tar must 解压源码包 echo echo PostgreSQL核心依赖必须 check_rpm readline-devel must 提供命令行历史记录与上下方向键支持 check_rpm zlib-devel must 支持数据压缩功能 check_rpm openssl-devel must 支持SSL/TLS加密连接 echo echo PostgreSQL功能增强可选 check_rpm ncurses-devel optional 如需需安装readline-deve,就必须存在,可忽略 check_rpm libxml2-devel optional 支持XML功能(XML类型/XPath) check_rpm libxslt-devel optional 支持XML/XSLT转换 check_cmd flex optional 仅开发PostgreSQL源码时需要 check_cmd bison optional 仅修改SQL语法解析器时需要 check_cmd wget optional 在线下载源码包时需要 echo echo 运行环境建议安装 check_rpm readline optional psql命令行体验增强 check_rpm zlib optional 运行时压缩支持 check_rpm openssl optional SSL运行支持 check_rpm libxml2 optional XML运行支持 check_rpm libxslt optional XSLT运行支持 echo echo 系统管理工具建议安装 check_cmd useradd optional 创建postgres用户 check_cmd systemctl optional 注册systemd服务 echo echo if [ ${must_lack} -eq 0 ]; then echo -e ${GREEN}[OK] PostgreSQL14 必须环境完整${RESET} else echo -e ${RED}[ERROR] PostgreSQL14 必须环境缺失无法正常编译${RESET} fi if [ ${optional_lack} -eq 1 ]; then echo -e ${YELLOW}[提示] 存在可选组件缺失但不影响基础编译安装${RESET} fi echo 赋权chmod x /opt/pgsql_make/check_pgsql_env.sh执行/opt/pgsql_make/check_pgsql_env.sh三、联网机器下载 Redis 编译依赖方式1推荐使用 yumdownloader先安装yuminstallyum-utils-y创建目录mkdirredis_rpmscdredis_rpms下载dnf download--resolve--alldeps\gcc\gcc-c\make\readline-devel\zlib-devel\openssl-devel\libxml2-devel\libxslt-devel\flex\bison\perl\perl-ExtUtils-Embed\wget\tar作用--resolve会自动下载依赖链。方式2在联网服务器中查看版本,并在网上下载先搜索联网服务器中相关版本,入vim:rpm -qf $(which vim)得出相关版本到对应发行商rpm源中下载:查不出具体的系统版本,可以去系统默认的rpm源查看,系统指向的那个路径,一般路径中就有对应的版本进入源存放目录:cd /etc/yum.repos.d/查看目录下源内容#麒麟服务器系统: cat kylin_x86_64.repo #openEuler: cat openEuler.repo麒麟V10: [Index of /NS/V10/V10SP3/os/adv/lic/base/x86_64/Packages/](Index of /NS/V10/)openEuler: repo.openeuler.org/openEuler-24.03-LTS-SP2/OS/x86_64/Packages/下在对应rpm,并上传安装:rpm -ivh *********.rpm四、下载 PostgreSQL14 源码包官方下载PostgreSQL官网PostgreSQL Source Download五、传输到麒麟服务器把postgresql-14.23.tar.gz传到/opt/pgsql_make六、创建postgres用户groupadd postgres useradd -g postgres postgres设置密码passwd postgres密码:Cqabj208七、编译安装 PostgreSQL141. 解压cd /opt/pgsql_make tar -zxvf /opt/pgsql_make/postgresql-14.23.tar.gz2. 编译cd postgresql-14.23创建数据库目录:mkdir -p /opt/postgreSQL配置./configure \ --prefix/opt/postgreSQL \ --with-openssl \如果成功会看到config.status: creating GNUmakefile3. 编译make -j 4CPU多可以改make -j $(nproc)4. 安装make install八、初始化数据库1. 创建数据和日志目录以root用户执行mkdir -p /opt/postgreSQL/data mkdir -p /opt/postgreSQL/logs chown -R postgres:postgres /opt/postgreSQL2. 初始化切换用户su - postgres进入数据库bin目录:cd /opt/postgreSQL/bin初始化,执行./initdb -D /opt/postgreSQL/data九、启动 PostgreSQL启动# 尝试启动 ./pg_ctl -D /opt/postgreSQL/data -l /opt/postgreSQL/logs/postgresql.log start # 查看状态 ./pg_ctl -D /opt/postgreSQL/data status # 尝试停止 ./pg_ctl -D /opt/postgreSQL/data stop查看ps -ef | grep postgres登录./psql新初始化的数据库默认没有密码或依赖本地系统用户认证为了远程登录的安全必须先设置一个强密码:ALTER USER postgres WITH PASSWORD cqabj208;创建epms2025数据库CREATE DATABASE epms2025 WITH ENCODING UTF8创建ep-server2025数据库CREATE DATABASE ep-server2025 WITH ENCODING UTF8退出pgsql:exit;或者杀死进程:ps -ef | grep postgres找出类似postgres -D /opt/postgreSQL/data杀掉十、配置systemd服务退回到root用户exit创建并编辑 Systemd 服务配置文件vi /usr/lib/systemd/system/postgreSQL.service写入[Unit] DescriptionPostgreSQL 14 database server Documentationhttps://www.postgresql.org/docs/14/static/ Afternetwork.target [Service] Typeforking Userpostgres Grouppostgres # 核心环境变量设置 EnvironmentPGDATA/opt/postgreSQL/data # 启动、停止、重载命令均使用全路径执行 ExecStart/opt/postgreSQL/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 ExecStop/opt/postgreSQL/bin/pg_ctl stop -D ${PGDATA} -s -m fast ExecReload/opt/postgreSQL/bin/pg_ctl reload -D ${PGDATA} -s KillModemixed TimeoutSec300 [Install] WantedBymulti-user.target刷新systemctl daemon-reload启动systemctl start postgreSQL查看状态systemctl status postgreSQL#如何没退回终端,是日志太长,按q请退出开机自启systemctl enable postgreSQL十一、开放远程连接可选编辑vi /opt/postgreSQL/data/postgresql.conf修改listen_addresses*编辑vi /opt/postgreSQL/data/pg_hba.conf增加# TYPE DATABASE USER ADDRESS METHOD host all all 0.0.0.0/0 scram-sha-256重启systemctl restart postgreSQL十二、最容易踩的坑问题原因openssl版本不兼容系统自带国密OpenSSLreadline缺失最常见perl模块缺失编译PL/pgSQL时gcc版本低导致编译失败locale问题initdb报错

相关新闻

ncmdump:3步解锁网易云音乐NCM文件的Java方案

ncmdump:3步解锁网易云音乐NCM文件的Java方案

ncmdump:3步解锁网易云音乐NCM文件的Java方案 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 如果你曾在网易云音乐下载过歌曲,可能会发现这些文件以.ncm格式保存,无…

2026/7/7 8:48:26阅读更多 →
Nav2 Inflation Layer 膨胀层公式、内切半径与 RViz 颜色理解

Nav2 Inflation Layer 膨胀层公式、内切半径与 RViz 颜色理解

适合场景:ROS2 Nav2 局部规划 / DWB / MPPI 调参,尤其是想搞清楚 inflation_radius 和 cost_scaling_factor 到底怎么影响避障行为。1. Costmap 里的 254、253、0 分别是什么? Nav2 costmap 内部使用 0 ~ 255 的 unsigned char 数值表示栅格代…

2026/7/7 8:48:26阅读更多 →
Nacos 认证关闭的代价有多大

Nacos 认证关闭的代价有多大

Nacos 认证关闭的代价有多大 Nacos 从测试环境推到了生产。部署脚本跑得很顺利——解压、改 cluster.conf、startup.sh。8848 端口通了,服务注册正常,灰度发布正常。 20 分钟后,在公网扫到了这个 8848 端口,拿到了所有命名空间下…

2026/7/7 8:43:25阅读更多 →
指标告警降噪:报警多了,真正的问题反而没人看

指标告警降噪:报警多了,真正的问题反而没人看

指标告警降噪:报警多了,真正的问题反而没人看 一、告警不是越多越安全 后端系统上了监控后,常见问题是告警太多。CPU 高了报,接口慢了报,错误率抖一下也报。短期看很负责,长期会把团队训练成忽略告警。报警…

2026/7/7 9:53:35阅读更多 →
find命令高级用法:动作执行与xargs协同实战

find命令高级用法:动作执行与xargs协同实战

引言:find不仅是搜索,更是行动引擎 Linux 系统中的文件数量庞大,find 命令的价值不仅在于定位文件,更在于对匹配结果执行一系列操作。本文从动作执行入手,逐步过渡到 xargs 协同,并通过完整的 playground 实例演示批量修改权限与时间戳的真实场景,帮助你从“会用”进阶…

2026/7/7 9:53:35阅读更多 →
如何用嘎嘎降AI处理国际贸易论文:国际贸易专业毕业论文降AI免费4.8元完整操作教程

如何用嘎嘎降AI处理国际贸易论文:国际贸易专业毕业论文降AI免费4.8元完整操作教程

如何用嘎嘎降AI处理国际贸易论文:国际贸易专业毕业论文降AI免费4.8元完整操作教程 第一次用降AI工具有很多不确定——传什么格式、选哪个模式、怎么验收。 这篇教程把国际贸易论文降AI教程的常见问题都覆盖了,主要基于嘎嘎降AI(www.aigclea…

2026/7/7 9:53:35阅读更多 →
SQL 窗口函数进阶实战:连续活跃天数计算,别再只用子查询嵌套

SQL 窗口函数进阶实战:连续活跃天数计算,别再只用子查询嵌套

SQL 窗口函数进阶实战:连续活跃天数计算,别再只用子查询嵌套 一、一个面试高频题藏着的工程思维差距 "计算每个用户连续活跃的最大天数"——这道 SQL 题在数据分析面试中出现的频率大概是 90%。大多数候选人的解法是子查询 自关联&#xff0c…

2026/7/7 9:53:35阅读更多 →
IPXWrapper终极指南:3步让经典游戏在Windows 10/11完美联机

IPXWrapper终极指南:3步让经典游戏在Windows 10/11完美联机

IPXWrapper终极指南:3步让经典游戏在Windows 10/11完美联机 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 还在为《红色警戒2》、《星际争霸》、《暗黑破坏神》这些经典游戏无法在现代Windows系统上联机而烦恼吗&am…

2026/7/7 9:53:35阅读更多 →
58.1.智慧银行-指纹+人脸-基于STM32单片机物联网设计【硬件+APP+云平台】

58.1.智慧银行-指纹+人脸-基于STM32单片机物联网设计【硬件+APP+云平台】

(1)硬件端 1.开启设备自动连接WiFi,LED闪烁提示设备正在工作; 2.实时监测:硬件设备收集的数据每隔3-5秒自动向云平台传输一次数据,通过APP可随时实时监测装置所检测的各项数据; 3.震动感应器:检…

2026/7/7 9:48:32阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

1. 项目概述:Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵,我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的,就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8…

2026/7/7 0:02:41阅读更多 →
国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot) 🌐 演示地址:http://ruoyioffice.com | 📦 源码1GitHub:ruoyi-office | 📦 源码2GitCode:ruoyi-o…

2026/7/7 0:02:41阅读更多 →
CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…

2026/7/7 0:02:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →