ubuntu 源码安装postgresql16.0
使用 root 账户进行安装安装路径/opt/pgsql16 手动创建数据存储路径/data/pgsql16/data 手动创建数据库配置文件 /data/pgsql16/data/postgresql.conf 会自动生成自动安装脚本参考最后 install_postgresql.sh(我是在ubuntu 22.04 上执行的)开始安装刷新本地包索引、安装相关依赖apt-getupdate-yapt-getupgrade-yapt-getinstallmake-yapt-getinstallbuild-essential-yapt-getinstalllibreadline-dev-yapt-getinstallzlib1g zlib1g-dev-yapt-getinstallbison-yapt-getinstallflex-yapt-getinstalllibpq-dev-yapt-getinstalllibicu-dev-yapt-getinstalllibcommon-sense-perl-yapt-getinstalllibjson-perl-yapt-getinstalllibjson-xs-perl-yapt-getinstalllibpq5-yapt-getinstalllibtypes-serialiser-perl-yapt-getinstallsysstat-y下载源码并解压(安装完之后可以删除的以防后期混淆)cd/wgethttps://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gztar-zxvfpostgresql-16.0.tar.gz# 进入解压目录cdpostgresql-16.0创建安装路径和数据存储路径(配置文件也在这个里面)mkdir-p/opt/pgsql16 /data/pgsql16/data配置编译参数并进行编译验证是否安装成功–prefix 指定安装路径–without-icu 禁用ICU 支持./configure--prefix/opt/pgsql16 --without-icu#编译 (持续时间较长)makemakeinstall#验证是否安装成功 (有配置内容则成功了)./opt/pgsql16/bin/pg_config#如果提示这个没见不存在就cd /opt/pgsql16/bin 然后执行 ./pg_config创建postgres用户与用户组 修改文件所有者groupaddpostgresuseradd-gpostgres postgrespasswdpostgres# 后面输入密码这里不是数据库密码chownpostgres:postgres /data/pgsql16/datamkdir/home/postgreschmod755/home/postgreschownpostgres:postgres /home/postgrescp-a/etc/skel/. /home/postgresvim/etc/passwd# 最后一行为postgres:x:xxxx:xxxx::/home/postgres:/bin/sh 将sh 修改成bash#postgres:x:xxxx:xxxx::/home/postgres:/bin/bash配置环境变量vim /etc/profile 最后添加如下exportPGHOME/opt/pgsql16exportPGDATA/data/pgsql16/dataexportPATH$PATH:$PGHOME/bin重新加载系统环境变量source/etc/profile切换用户 初始化数据库su- postgrescd/data/pgsql16/data# initdb 直接输入回车就行了initdb-D/data/pgsql16/data出现下面内容表示成功Success. You can now start the database server using:pg_ctl -D /data/pgsql16/data -l logfile start设置开机启动 切换到 root用户suroot编辑 vim /postgresql-16.0/contrib/start-scripts/linux 文件修改如下文件在解压后的源码包里。# 安装路径prefix/opt/pgsql16# 数据存储路径PGDATA/data/pgsql16/data并且修改文件头部 为 #! /bin/bash 并且添加下列代码不要取消注释BEGIN 部分也得加上不然启动会报错#! /bin/bash### BEGIN INIT INFO# Provides: hutu# Required-Start:# Required-Stop:# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: Start hutu daemon at boot time# Description: Start hutu daemon at boot time### END INIT INFO修改成可执行chmodax /postgresql-16.0/contrib/start-scripts/linux复制到 /etc/init.d/、/usr/local/bin/ 文件夹下去,并且改成postgresqlcp/postgresql-16.0/contrib/start-scripts/linux /etc/init.d/postgresqlcp/postgresql-16.0/contrib/start-scripts/linux /usr/local/bin/postgresqlchmodx /usr/local/bin/postgresql创建system服务vim /etc/systemd/system/postgresql.service[Unit]DescriptionPostgreSQL RDBMSAfternetwork.target[Service]TypeforkingUserpostgresGrouppostgresExecStart/opt/pgsql16//bin/pg_ctl start-D/data/pgsql16/data/-s-o-p 5432ExecStop/opt/pgsql16//bin/pg_ctl stop-D/data/pgsql16/data/-s-mfastExecReload/opt/pgsql16//bin/pg_ctl reload-D/data/pgsql16/data/-s[Install]WantedBymulti-user.target刷新系统服务设置开机启动启动服务systemctl daemon-reload systemctlenablepostgresql.service systemctl start postgresql systemctl status postgresql修改配置文件 /data/pgsql16/data/postgresql.conf允许远程访问listen_addresses 这个值改成 * 其他配置配置另行百度修改配置文件 /data/pgsql16/data/pg_hba.conf 最后一行添加如下hostall all0.0.0.0/0 md5重启服务systemctl restart postgresql修改数据库的postgres账户密码,放开防火墙su- postgres# 登录数据库(上方 /data/pgsql16/data/pg_hba.conf# 文件默认有 host all all 127.0.0.1/32 trust 这个 其中 trust 表示不需要密码登录)psql# 修改密码alter user postgres with password你的密码;exitsuroot#放开防火墙ufw allow5432删除安装包和源码以防后期混淆rm-rf/postgresql-16.0.tar.gzrm-rf/postgresql-16.0脚本安装(root用户)随便在哪个位置 新建 install_postgresql.sh 粘贴以下脚本 并设置可以执行权限 chmod x install_postgresql.sh#!/bin/bash# PostgreSQL 16 源码安装脚本 (基于 Ubuntu)# 参考: https://blog.csdn.net/qq_36491545/article/details/140488108# 注意此脚本需使用 root 用户执行 (sudo)set-e# 脚本在遇到错误时立即退出# --- 配置变量 (可按需修改) ---PG_VERSION16.0PG_HOME/opt/pgsql16PG_DATA/data/pgsql16/dataPG_USERpostgresPG_PASSWORDyour_strong_password# 请修改为强密码PG_PORT5432# --- 函数: 打印带颜色的提示信息 ---print_info(){echo-e\n\033[32m[INFO]\033[0m$1}print_error(){echo-e\n\033[31m[ERROR]\033[0m$12}# --- 1. 更新系统并安装依赖 ---print_info更新系统包列表并安装依赖...apt-getupdate-yapt-getupgrade-yapt-getinstall-ymakebuild-essential libreadline-dev zlib1g zlib1g-dev\bison flex libpq-dev libicu-dev libcommon-sense-perl libjson-perl\libjson-xs-perl libpq5 libtypes-serialiser-perl sysstatwget# --- 2. 下载并解压源码 ---print_info下载 PostgreSQL${PG_VERSION}源码...cd/if[-fpostgresql-${PG_VERSION}.tar.gz];thenrm-fpostgresql-${PG_VERSION}.tar.gzfiwgethttps://ftp.postgresql.org/pub/source/v${PG_VERSION}/postgresql-${PG_VERSION}.tar.gzprint_info解压源码...tar-zxvfpostgresql-${PG_VERSION}.tar.gzcdpostgresql-${PG_VERSION}# --- 3. 创建目录 ---print_info创建安装目录和数据目录...mkdir-p$PG_HOME$PG_DATA# --- 4. 编译与安装 ---print_info配置编译选项 (禁用ICU支持)..../configure--prefix$PG_HOME--without-icu print_info开始编译 (此过程较长, 请耐心等待)...make-j$(nproc)# 使用所有CPU核心加速编译makeinstallprint_info编译安装完成.# 验证安装if[-x$PG_HOME/bin/pg_config];thenprint_info安装验证成功:$PG_HOME/bin/pg_config--versionelseprint_error安装验证失败, pg_config 未找到.exit1fi# --- 5. 创建 postgres 用户 ---print_info创建系统用户 ${PG_USER}...ifid$PG_USER/dev/null;thenprint_info用户 ${PG_USER} 已存在跳过创建。elsegroupadd$PG_USERuseradd-g$PG_USER$PG_USERecho${PG_USER}:${PG_PASSWORD}|chpasswdmkdir-p/home/${PG_USER}chmod755/home/${PG_USER}chown${PG_USER}:${PG_USER}/home/${PG_USER}cp-a/etc/skel/. /home/${PG_USER}# 修改默认 shell 为 bashusermod-s/bin/bash$PG_USERfi# 修改数据目录所有者chown-R${PG_USER}:${PG_USER}$PG_DATAchown-R${PG_USER}:${PG_USER}$PG_HOME# --- 6. 配置环境变量 ---print_info配置 PostgreSQL 环境变量...grep-qPGHOME/etc/profile||cat/etc/profileEOF export PGHOME$PG_HOMEexport PGDATA$PG_DATAexport PATH\$PATH:\$PGHOME/bin EOFsource/etc/profile# --- 7. 初始化数据库 ---print_info切换至${PG_USER}用户初始化数据库...su-$PG_USER-cinitdb -D$PG_DATA# --- 8. 配置 systemd 服务 (替代原博客的 init.d) ---print_info配置 systemd 服务...cat/etc/systemd/system/postgresql.serviceEOF [Unit] DescriptionPostgreSQL RDBMS Afternetwork.target [Service] Typeforking User${PG_USER}Group${PG_USER}ExecStart${PG_HOME}/bin/pg_ctl start -D${PG_DATA}-s -o -p${PG_PORT} ExecStop${PG_HOME}/bin/pg_ctl stop -D${PG_DATA}-s -m fast ExecReload${PG_HOME}/bin/pg_ctl reload -D${PG_DATA}-s ExecStatus${PG_HOME}/bin/pg_ctl status -D${PG_DATA}Restartno [Install] WantedBymulti-user.target EOF# 重新加载 systemd 并启用服务systemctl daemon-reload systemctlenablepostgresql.service print_infoPostgreSQL systemd 服务已配置并启用.# --- 9. 启动服务并检查状态 ---print_info启动 PostgreSQL 服务...systemctl start postgresqlsleep3systemctl status postgresql --no-pager# --- 10. 配置远程访问 (可选) ---print_info配置远程访问权限...sed-is/#listen_addresses localhost/listen_addresses */g$PG_DATA/postgresql.confechohost all all 0.0.0.0/0 md5$PG_DATA/pg_hba.conf# 重启服务使配置生效systemctl restart postgresql# --- 11. 修改数据库管理员密码 ---print_info修改 PostgreSQL 数据库 postgres 用户密码...su-$PG_USER-cpsql -c\ALTER USER postgres WITH PASSWORD ${PG_PASSWORD};\# --- 12. 设置防火墙 (如果 UFW 启用) ---ifcommand-vufw/dev/nullufw status|grep-qactive;thenprint_info检测到 UFW 防火墙已启用开放端口${PG_PORT}...ufw allow${PG_PORT}/tcpfi# --- 13. 清理安装文件 ---print_info清理下载的源码包和解压目录...cd/rm-rfpostgresql-${PG_VERSION}.tar.gzpostgresql-${PG_VERSION}# --- 完成 ---print_infoPostgreSQL${PG_VERSION}源码安装成功!print_info安装路径:${PG_HOME}print_info数据路径:${PG_DATA}print_info管理员用户:${PG_USER}, 密码:${PG_PASSWORD}print_info服务管理命令: systemctl {start|stop|restart|status} postgresql

相关新闻

洛谷 P1014 [NOIP 1999 普及组] Cantor 表

洛谷 P1014 [NOIP 1999 普及组] Cantor 表

本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-NC-SA协议。 因此,若需转载/引用本文,请注明作者并附原文链接,不得用于商业用途。 违者必究,谢谢配合。 个人主页:blog.csdn.net/jzwalli…

2026/8/12 19:01:40 阅读更多 →
《AutoFocus: Efficient Multi-Scale Inference》论文笔记

《AutoFocus: Efficient Multi-Scale Inference》论文笔记

《AutoFocus: Efficient Multi-Scale Inference》论文笔记 1. Motivation 这是一篇讨论如何 “from coarse to fine” 进行目标检测的论文。进行多尺度目标检测一般都会用到金字塔网络,有的是利用特征金字塔如FPN(Feature Pyramid Network)在…

2026/8/11 16:59:35 阅读更多 →
HunyuanImage-2.1创意案例大全:8个场景教你用AI生成商业级视觉内容

HunyuanImage-2.1创意案例大全:8个场景教你用AI生成商业级视觉内容

HunyuanImage-2.1创意案例大全:8个场景教你用AI生成商业级视觉内容 【免费下载链接】HunyuanImage-2.1 HunyuanImage-2.1: An Efficient Diffusion Model for High-Resolution (2K) Text-to-Image Generation​ 项目地址: https://gitcode.com/gh_mirrors/hu/Huny…

2026/8/12 19:51:05 阅读更多 →

最新新闻

Python游戏化学习指南:从零到一,在玩中掌握编程核心

Python游戏化学习指南:从零到一,在玩中掌握编程核心

很多Python初学者都经历过这样的阶段:对着枯燥的语法书和练习题,感觉编程既抽象又无趣,学习热情很快就被消磨殆尽。直到有一天,你发现原来Python可以如此“好玩”——通过游戏化的方式,在闯关、解谜、甚至编写小游戏的…

2026/8/12 20:08:24 阅读更多 →
AI Agent上下文压缩:Headroom原理、实战与长对话优化指南

AI Agent上下文压缩:Headroom原理、实战与长对话优化指南

1. 项目概述:为什么我们需要“上下文压缩”?如果你最近在折腾AI Agent或者大语言模型应用,大概率被“上下文长度”这个问题折磨过。无论是OpenAI的GPT-4 Turbo那128K的“豪华”窗口,还是Claude那令人咋舌的200K上下文,…

2026/8/12 20:08:24 阅读更多 →
Claude的60个子Agent冲击黎曼猜想:AI自主科研的里程碑与边界

Claude的60个子Agent冲击黎曼猜想:AI自主科研的里程碑与边界

Claude的60个子Agent冲击黎曼猜想:AI自主科研的里程碑与边界 一个非数学家在晨跑时随口给AI布置了一道167年没人解出的数学题。AI没能证明它,却在"失败"的路上,把人类37年攒下的成绩一口气刷新了25倍。 2026年8月10日,A…

2026/8/12 20:08:24 阅读更多 →
UML类图六大关系详解:从依赖到组合,掌握面向对象设计核心

UML类图六大关系详解:从依赖到组合,掌握面向对象设计核心

1. 项目概述:为什么UML类图是程序员必备的“设计蓝图”?干了这么多年开发,我见过太多因为前期设计没想清楚,导致后期代码改得面目全非、牵一发而动全身的项目。很多时候,问题不是出在编码能力上,而是团队成…

2026/8/12 20:08:24 阅读更多 →
深入解析CPU指令执行:从单周期到流水线,揭秘程序运行底层原理

深入解析CPU指令执行:从单周期到流水线,揭秘程序运行底层原理

1. 从“按按钮”到“跑程序”:指令执行到底在干什么?如果你刚开始接触计算机组成原理,看到“指令执行过程”这几个字,可能会觉得它离我们日常写代码、用软件很远,是那些设计CPU的工程师才需要关心的底层黑盒。但恰恰相…

2026/8/12 20:08:24 阅读更多 →
地震损失评估建模实战:从哥伦比亚7.4级强震、188人遇难看烈度衰减与损失预测

地震损失评估建模实战:从哥伦比亚7.4级强震、188人遇难看烈度衰减与损失预测

地震损失评估建模实战:从哥伦比亚7.4级强震、188人遇难看烈度衰减与损失预测 当地时间8月10日上午7点34分,哥伦比亚西部发生7.4级强震,震中位于首都波哥大以西约240公里,是哥伦比亚过去十年来录得的最强地震。据中新社8月12日报道…

2026/8/12 20:07:24 阅读更多 →

日新闻

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

Ubuntu 22.04安装与使用tree命令:高效管理Linux目录结构

1. 为什么需要一个“目录树”工具?在Linux世界里,尤其是Ubuntu这样的发行版,命令行是很多人的主战场。我们每天都要和文件、目录打交道。ls命令是查看目录内容的首选,它简洁、高效,能列出文件名、权限、大小等关键信息…

2026/8/12 9:33:34 阅读更多 →
博思AI智能体:意图识别、思考链与性能优化的工程实践

博思AI智能体:意图识别、思考链与性能优化的工程实践

在AI应用从“能用”走向“好用”的进程中,系统的响应速度、决策透明度与高并发稳定性是决定用户体验的关键。博思AI智能体近期完成了一次重要的专项优化,聚焦于意图识别、思考链展示与全链路压测三大核心领域,将系统从功能实现推向了工程卓越…

2026/8/12 9:33:34 阅读更多 →
子代理架构:AI智能体任务分解与协同执行的核心原理与实践

子代理架构:AI智能体任务分解与协同执行的核心原理与实践

1. 项目概述:为什么我们需要“子代理”?最近在折腾各种AI应用和自动化流程时,我越来越频繁地遇到一个瓶颈:单个AI智能体(Agent)的能力边界。无论是处理复杂的多步骤任务,还是需要同时调用多个专…

2026/8/12 9:33:34 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/12 1:11:09 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →