ubuntu 源码安装postgresql16.0

  • 使用 root 账户进行安装
  • 安装路径:/opt/pgsql16 手动创建
  • 数据存储路径:/data/pgsql16/data 手动创建
  • 数据库配置文件 /data/pgsql16/data/postgresql.conf 会自动生成

开始安装
刷新本地包索引、安装相关依赖

apt-get update -y
apt-get upgrade -y
apt-get install make -y
apt-get install build-essential -y
apt-get install libreadline-dev -y
apt-get install zlib1g zlib1g-dev -y
apt-get install bison -y
apt-get install flex -y
apt-get install libpq-dev -y
apt-get install libicu-dev -y
apt-get install libcommon-sense-perl -y
apt-get install libjson-perl -y
apt-get install libjson-xs-perl -y
apt-get install libpq5 -y
apt-get install libtypes-serialiser-perl -y
apt-get install sysstat` -y

下载源码并解压(安装完之后可以删除的,以防后期混淆)

cd /
wget https://ftp.postgresql.org/pub/source/v16.0/postgresql-16.0.tar.gz
tar -zxvf postgresql-16.0.tar.gz 
# 进入解压目录
cd postgresql-16.0

创建安装路径和数据存储路径(配置文件也在这个里面)

mkdir -p  /opt/pgsql16  /data/pgsql16/data

配置编译参数,并进行编译,验证是否安装成功
–prefix 指定安装路径
–without-icu 禁用ICU 支持

./configure --prefix=/opt/pgsql16 --without-icu#编译 (持续时间较长)
make && make install#验证是否安装成功 (有配置内容则成功了)
./opt/pgsql16/bin/pg_config

创建postgres用户与用户组 修改文件所有者

groupadd postgres
useradd -g postgres postgres
passwd postgres  # 后面输入密码,这里不是数据库密码
chown postgres:postgres /data/pgsql16/datamkdir /home/postgres
chmod 755 /home/postgres
chown postgres:postgres /home/postgres
cp -a /etc/skel/. /home/postgres
vim /etc/passwd
# 最后一行为postgres:x:xxxx:xxxx::/home/postgres:/bin/sh 将sh 修改成bash
#postgres:x:xxxx:xxxx::/home/postgres:/bin/bash

配置环境变量
vim /etc/profile 最后添加如下

export PGHOME=/opt/pgsql16
export PGDATA=/data/pgsql16/data
export PATH=$PATH:$PGHOME/bin

重新加载系统环境变量

source /etc/profile

切换用户 初始化数据库

su - postgres
cd /data/pgsql16/data
# initdb直接输入回车就行了
initdb

出现下面内容表示成功
Success. You can now start the database server using:
pg_ctl -D /data/pgsql16/data -l logfile start

设置开机启动
编辑 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

修改成可执行

chmod a+x /postgresql-16.0/contrib/start-scripts/linux

复制到 /etc/init.d/、/usr/local/bin/ 文件夹下去,并且改成postgresql

cp /postgresql-16.0/contrib/start-scripts/linux /etc/init.d/postgresql
cp /postgresql-16.0/contrib/start-scripts/linux /usr/local/bin/postgresql
chmod +x /usr/local/bin/postgresql

创建system服务
vim /etc/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL RDBMS
After=network.target[Service]
Type=forking
User=postgres
Group=postgres
ExecStart=/opt/pgsql16//bin/pg_ctl start -D /data/pgsql16/data/ -s -o "-p 5432"
ExecStop=/opt/pgsql16//bin/pg_ctl stop -D /data/pgsql16/data/ -s -m fast
ExecReload=/opt/pgsql16//bin/pg_ctl reload -D /data/pgsql16/data/-s[Install]
WantedBy=multi-user.target

刷新系统服务,设置开机启动,启动服务

systemctl daemon-reload
systemctl enable postgresql.service
systemctl start postgresql
systemctl status postgresql

修改配置文件 /data/pgsql16/data/postgresql.conf 允许远程访问

listen_addresses 这个值改成 * 
其他配置配置另行百度

修改配置文件 /data/pgsql16/data/pg_hba.conf 最后一行添加如下

host    all             all             0.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 '你的密码';
exit 
su root
#放开防火墙
ufw allow 5432

删除安装包和源码,以防后期混淆

rm -rf /postgresql-16.0.tar.gz
rm -rf /postgresql-16.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nest.js 实战 (四):利用 Pipe 管道实现数据验证和转换

什么是管道(Pipe)? 在 Nest.js 中,管道(Pipelines) 是一种强大的功能,用于预处理进入控制器方法的请求数据,如请求体、查询参数、路径参数等。管道允许开发者在数据到达控制器方法之…

Python面试整理-文件处理

在Python中,文件处理是一项常见的任务,涉及到读取、写入和管理文件。这里提供了一个基本指南,展示如何在Python中执行文件处理操作: 打开文件 使用open()函数来打开一个文件,这个函数返回一个文件对象,并且接受两个主要的参数:文件名和模式。 file = open("example…

BGP协议的综合实验

目录 文章目录 一、题目 二、题目分析 题目需求 IP地址的划分 三、实验配置 IP地址配置 OSPF配置 检查OSPF配置: BGP配置 配置反射器 宣告1.1.1.1/8.8.8.8 查看结果 减少路由条目数量 配置GRE环境 提示:以下是本篇文章正文内容,下面案例可供…

紧跟时代步伐:黑龙江等级保护测评新政策解读

黑龙江等保测评新政策解读 简介 黑龙江等保测评新政策是为了应对日益严峻的网络信息安全挑战而制定的,它包含了一系列新的要求和标准,旨在提升企业和个人在信息安全方面的意识和应对能力,确保信息系统的稳定运行和数据安全。 等级划分调整…

yolo5图片视频、摄像头推理demo

yolo5图片、视频推理demo 图片 import torch# 加载预训练模型 model torch.hub.load(./yolo5, custom, pathyolov5s.pt, sourcelocal)# 加载图片 img 1.jpg# 进行推理 results model(img)# 解析结果 detections results.xyxy[0].cpu().numpy() # [x1, y1, x2, y2, confid…

【好玩的经典游戏】Docker环境下部署赛车小游戏

【好玩的经典游戏】Docker环境下部署赛车小游戏 一、小游戏介绍1.1 小游戏简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 安装Docker环境3.2 检查Docker服务状态3.3 检查Docker版本3.4 检查docker compose 版本四、构建容器镜像4.1 下…

全自动蛋托清洗机介绍:

全自动蛋托清洗机,作为现代蛋品处理设备的杰出代表,凭借其高效、智能、环保的特性,正逐步成为蛋品加工行业的得力助手。 这款清洗机采用了先进的自动化设计理念,从进料、清洗到出料,全程无需人工干预,极大…

C++:类与对象(下)

前言: 前言: 上一篇博客我们介绍了类与对象中的几类默认成员函数,这篇让我们继续来学习类与对象吧! 个人主页:Pianeers 文章专栏:C 如果有问题,欢迎评论区讨论! 希望能帮到大家&…

字典树(前缀树)哈希表实现(能查所有字符)

Node2类:表示Trie树的节点。每个节点有三个属性:pass:表示经过该节点的次数,即有多少个字符串经过了这个节点。 end:表示以该节点结尾的字符串数量,即有多少个字符串在这个节点结束。 nexts:是一…

【数据脱敏】⭐️SpringBoot 整合 Jackson 实现隐私数据加密

目录 🍸前言 🍻一、Jackson 序列化库 🍺二、方案实践 2.1 环境准备 2.2 依赖引入 2.3 代码编写 💞️三、接口测试 🍹四、章末 🍸前言 小伙伴们大家好,最近也是很忙啊,上次的文章…

C++与VLC制作独属于你的动态壁纸背景

文章目录 前言效果展示为什么要做他如何实现他实现步骤获取桌面句柄代码获取桌面句柄libvlc_media_player_set_hwnd函数 动态壁纸代码 总结 前言 在当今的数字世界中,个性化和自定义化的体验越来越受到人们的欢迎。动态壁纸是其中一种很受欢迎的方式,它…

【教学类-70-01】20240722镜子花边(适配5CM圆镜)

背景需求 我想给孩子们做一个小圆镜,花边涂色,打洞,做一个项链样式 1、使用通义万相生成了“圆形镜子,有花边” 边缘细,黑色面积大的图片放到另外一个文件夹里(不用) 从性价比角度&#xff…

Qt窗口介绍

Qt窗口 一、Qt窗口二、菜单栏创建菜单栏在菜单栏中添加菜单创建菜单项在菜单项之间添加分割线综合练习 三、工具栏创建工具栏设置停靠位置设置浮动属性设置移动属性综合练习 四、状态栏状态栏的创建在状态栏中显示实时消息在状态栏显示永久的消息 五、浮动窗口浮动窗口的创建设…

ArcGIS Pro SDK (九)几何 12 多面体

ArcGIS Pro SDK (九)几何 12 多面体 文章目录 ArcGIS Pro SDK (九)几何 12 多面体1 通过拉伸多边形或折线构建多面体2 多面体属性3 构建多面体4 通过MultipatchBuilderEx构建多面体5 从另一个多面体构建多面体6 从 3D 模型文件构建…

Vue的计算属性和方法有什么区别

Vue中的计算属性(computed)和方法(methods)都是用于处理数据和逻辑的重要特性,但它们之间存在一些关键的区别。以下是两者的主要区别: 1. 缓存性 计算属性:计算属性是基于它们的依赖进行缓存的…

Pytorch实现图像分类-水果数据集分类--深度学习大作业

目录 1.概述 2.设计 3.实现 4.实验 5.总结 1.概述 本次深度学习大作业,我使用AlexNet模型对"Fruits-360"数据集中的两部分水果和蔬菜图片进行分类 2.设计 模型设计:Alexnet网络 卷积层部分:构建了一系列卷积层、激活函数…

【等保测评】服务器——Windows server 2012 R2

文章目录 **身份鉴别****访问控制****安全审计****入侵防范****恶意代码防范****可信验证****测评常用命令** Windows服务器安全计算环境测评 测评对象:Windows server 2012 R2 身份鉴别 (高风险)应对登录的用户进行身份标识和鉴别&#x…

【爱上C++】list用法详解、模拟实现

文章目录 一:list介绍以及使用1.list介绍2.基本用法①list构造方式②list迭代器的使用③容量④元素访问⑤插入和删除⑥其他操作image.png 3.list与vector对比 二:list模拟实现1.基本框架2.节点结构体模板3.__list_iterator 结构体模板①模板参数说明②构…

CentOS8无论安装更新什么都出现错误: Failed to download metadata for repo ‘AppStream‘

CentOS 已经停止维护,需要将镜像从 mirror.centos.org 更改为 vault.centos.org,依次执行以下命令即可: 1、cd /etc/yum.repos.d/ 2、sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-* 3、sed -i s|#baseurlhttp://mirror.centos.org|baseu…

【无人机】低空经济中5G RedCap芯片的技术分析报告

1. 引言 图一. 新基建:低空经济 低空经济作为一种新兴的经济形态,涵盖了无人机、电动垂直起降飞行器(eVTOL)、低空物流、空中交通管理等多个领域。随着5G网络的普及和演进,5G RedCap(Reduced Capability&a…