ubuntu18源码安装postgresql15.2数据库

由于官方的源只能安装到pg10这个版本,整了好一会没有成功就改为源码安装了。

下载源代码源码并解压
 wget https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gztar -xf  postgresql-15.2.tar.gz cd postgresql-15.2/ 
安装C++相关开发库和编译工具
 apt install make gcc tar pkg-config libicu-dev libreadline-dev zlib1g-dev -y
开始编译

设置pg编译后的二进制包存放目录为/opt/postgresql-15.2

sudo ./configure --prefix=/opt/postgresql-15.2
make
make install

执行./configure 和make 需要几分钟时间。执行完成后 如果没有报错则表示编译源码完成。接下来进入二进制包目录中,创建data logs目录 用于存放数据和日志,

cd /opt/postgresql-15.2
#用于存放数据和日志,
mkdir {data,logs}
#授权给postgres账户 如果还没有postgres账号需要创建
groupadd postgres
useradd -g postgres postgres
chown -R postgres:postgres /opt/postgresql-15.2

此目录也可以打包成tar.gz压缩包供以后再次安装使用,就不需要再去重新编译了。

初始化数据库和启动数据库

开始之前先切换至postgres账户su postgres

#切换账号
su postgres
#进入安装目录
cd /opt/postgresql-15.2
#初始化数据库 这一步如果成功了 会打印启动数据库的命令。如果没有就是失败了
bin/initdb -D /opt/postgresql-15.2/data
#使用pg_ctl启动数据库
bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/postgresql.log start
#可以创建一个test数据库试一下 这一步可以不操作
bin/createdb test
常用配置

pg的配置文件默认存放在数据库中。常用的配置文件有:
1、postgresql.conf 主要是数据库服务器的全局配置
2、pg_hba.conf 客户端认证规则,配置了哪些用户和哪些IP地址可以连接到数据库服务器。

配置运行远程访问
  • data/postgresql.conf文件
    listen_addresses = ’ * ’ #改为*表示监听任意网卡的端口 默认为localhost
  • data/pg_hba.conf文件
    host all all 0.0.0.0/0 trust #新写入一条规则 允许所有IP 所有数据库访问
配置账号密码

输入psql命令行 默认使用postgres账户进入数据库

#修改postgres密码
ALTER USER postgres WITH PASSWORD 'postgres'; 
#登录数据库
psql 
制作系统systemd服务

使用systemd服务主要是方便pg数据库的启动和停止 方便交给systemd去管理,也能设置开机自启动。
开始之前先停止上面手动启动的数据库。因为要基于systemd服务启动。

bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/postgresql.log stop

创建文件 vim /etc/systemd/system/postgresql.service

[Unit]
Description=PostgreSQL
After=network-online.target[Service]
Type=forking
WorkingDirectory=/opt/postgresql-15.2/bin
User=postgres
ExecStart=/opt/postgresql-15.2/bin/pg_ctl -D /opt/postgresql-15.2/data -l /opt/postgresql-15.2/logs/postgresql.log start
ExecStop=/opt/postgresql-15.2/bin/pg_ctl -D /opt/postgresql-15.2/data stop
Restart=always
RestartSec=40s
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=postgresql
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • 设置开机启动
    systemctl enable postgresql
  • 启动数据库
    systemctl start postgresql
  • 查看数据库状态
    systemctl status postgresql
  • 停止数据库
    systemctl stop postgresql

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

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

相关文章

Java解决找出字符串中第一个匹配项的下标

Java解决找出字符串中第一个匹配项的下标 01 题目 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示…

网络扫描技术

网络扫描技术是信息安全领域中的一项重要技术,它旨在发现网络中的设备、服务、漏洞和配置情况,为安全评估、渗透测试或恶意攻击做准备。以下是几种主要的网络扫描技术: PING扫射(Ping sweep): 通过发送ICMP…

element 分页切换时:current-page无效 页数不会跟着一起切换

问题回溯:使用el-pagination组件 选择切换当前分页 页数为2 问题结果:el-pagination组件 当前页切换失败 一直都是 1,接口传参分页数据是2,打印当前分页也是2 解决方案1:使用 current-page参数 .sync 修饰符 解决方案2…

安装nuxt3环境

安装nuxt3,按照nuxt官网,node版本需在18以上 执行 npx nuxilatest init ‘xxx’终端控制台可能会报错: ERROR Error: Failed to download template from registry: Failed to download https://raw.githubusercontent.com/nuxt/starter/temp…

rust将json字符串直接转为map对象或者hashmap对象

有些时候我们还真的不清楚返回的json数据里面到底有哪些数据,数据类型是什么等,这个时候就可以使用批处理的方式将json字符串转为一个对象,然后通过这个对象的get方法来获取json里面的数据。 pub async fn test_json(&self) {let json_st…

STM32的TIM输入捕获和PWMI详解

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. IC输入捕获 2. 频率测量 3. 主模式、从模式、触发源选择 4. 输入捕获基本结构 5. PWMI模式 6. 代码示例 6.1 PWM.c 6.2 PWM.h 6.3 IC.c 6.4 IC.h 6.5 完整工程文件 输出比较可以看下面这篇…

numpy+matplotlib绘制阿基米德螺线

【第10次课]实验十一数据可视化及应用】 声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 绘制阿基米德螺线,运行效果如图所示。 参数方程为: x icosi yisini 其中半径i和圆心角i变化一致,取值范围为…

#你觉得未来的智慧工地是什么样子的#

#你觉得未来的智慧工地是什么样子的# 有人说“现阶段的智慧工地都是噱头,实际用处不大”;也有人将智慧工地吹嘘上天。那么,随着技术的发展,你觉得未来的智慧工地会是什么样子呢? 随着大数据时代的到来,未来…

Three.js杂记(十五)—— 汽车展览(下)

在上一篇文章Three.js杂记(十四)—— 汽车展览上 - 掘金 (juejin.cn)中主要对切换相机不同位置和鼠标拖拽移动相机焦点做了简单的应用。 那么现在聊聊该如何实现汽车模型自带的三种动画展示了,实际上可以是两种汽车前后盖打开和汽车4车门打开…

Java基础:探秘基本数据类型与对象的巧妙转换

作为准备面试的程序员,了解Java的基本数据类型及其与对象之间的转换功能是非常重要的。 本文将深入探讨Java的基本数据类型,介绍基本数据类型和对象之间的转换方式,帮助你更好地准备面试。 Java的基本数据类型 Java的基本数据类型包括以下…

抑郁后的症状表现——XWX-QP大小鼠强迫游泳桶硬件

简单介绍: 大小鼠强迫游泳桶硬件主要用于抗抑郁的研究。适用于大鼠、小鼠或其他实验室动物,通过将实验动物置于一个局限的环境中,动物在该环境中拼命挣扎试图逃跑又无法逃脱,从而提供了一个无可回避的压迫环境,动物的…

如何提取二维码文本信息?文本二维码提取内容的方法

如何分解出二维码中的文本信息呢?很多商家在做活动时会给每个用户生成一个单独的二维码,每一个二维码中有单独的编号信息,那么当我们收集到用户的二维码时,如何操作才能够提取二维码中的编号信息呢?想要解决这个问题可…

双目深度估计原理立体视觉

双目深度估计原理&立体视觉 0. 写在前面1. 双目估计的大致步骤2. 理想双目系统的深度估计公式推导3. 双目标定公式推导4. 极线校正理论推导 0. 写在前面 双目深度估计是通过两个相机的对同一个点的视差来得到给该点的深度。 标准系统的双目深度估计的公式推导需要满足:1)两…

Vue3+ts(day04:watch、watchEffect)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈(笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】,记录一下学习笔记,用于自己复盘,有需要学…

机器学习学习 - 数据预处理

机器学习学习笔记 - 数据预处理 数据预处理是机器学习项目中不可或缺的一环,它涉及到数据的清洗、格式化、归一化、特征提取等一系列操作,以便为后续的模型训练和分析提供高质量的数据集。以下是关于数据预处理的一些关键步骤和注意事项。 一、数据准备…

树莓派5用docker运行Ollama3

书接上回,树莓派5使用1panel安装 Ollama 点击终端就可以进入容器 输入以下代码 ollama run llama3Llama3 是市场推崇的版本。您的 树莓派5上必须至少有 4.7GB 的可用空间,因此用树莓派玩机器学习就必须配置大容量的固态硬盘。用1panel部署网络下载速度…

RTX3090显卡功耗对比

NVIDIA RTX 3090显卡的官方总图形功耗(TGP)为350瓦。这是公版显卡的设计功耗。然而,在实际使用中,尤其是进行高强度任务如游戏或专业渲染时,其功耗可能会超过这个数值,尤其在超频的情况下。有报告指出&…

vue-cli+vue3+vite+ts 搭建uniapp项目全过程(二)

接上一篇 3、别名配置 代替 ./srccomponents代替./src/components 在 Vite 中, __dirname 并不是一个全局变量,所以在vite.config.ts 文件中无法直接使用。 安装依赖 npm install --save-dev types/node vite.config.ts配置 // vite.config.t…

Python | Leetcode Python题解之第58题最后一个单词的长度

题目: 题解: class Solution:def lengthOfLastWord(self, s: str) -> int:ls[]for i in s.split():ls.append(i)return len(ls[-1])

跟TED演讲学英文:The future will be shaped by optimists by Kevin Kelly

The future will be shaped by optimists Link: https://www.ted.com/talks/kevin_kelly_the_future_will_be_shaped_by_optimists Speaker: Kevin Kelly Date: August 2021 文章目录 The future will be shaped by optimistsIntroductionVocabularyTranscriptSummary后记 In…