【PostgreSQL内核学习(一)—— Ubuntu源码安装PostgreSQL】

Ubuntu源码安装PostgreSQL

  • 1. PostgreSQL官网下载压缩包
  • 2. 解压&安装
    • 2.1 解压文件
    • 2.2 安装依赖
    • 2.3 执行安装
    • 2.4 执行安装
    • 2.5 添加路径到文件
  • 3. 初始化数据库与使用
    • 3.1 初始化数据库
    • 3.2 启动数据库服务
    • 3.3 启动数据库

1. PostgreSQL官网下载压缩包

下载地址:https://www.postgresql.org/ftp/source/v10.1/

在这里插入图片描述

2. 解压&安装

2.1 解压文件

执行命令:

tar zxvf postgresql-10.1.tar.gz

在这里插入图片描述
解压成功后显示:
在这里插入图片描述

2.2 安装依赖

sudo apt-get install libreadline-dev
sudo apt-get install zlib1g-dev
sudo apt-get install gcc

出现问题:
在这里插入图片描述
解决方法:执行以下命令。

sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock

2.3 执行安装

执行命令:

./configure --prefix=/opt/postgresql/10 --enable-debug --enable-cassert
make
make install

注意:如果希望后续在gdb时可以查看代码,则需要添加–enable-debug

make时出现错误:
在这里插入图片描述
解决方法:找到copy_fetch.c文件。
文件路径如下:/home/jia/pg_server/postgresql-10.1/src/bin/pg_rewind/copy_fetch.c
也可以使用命令:sudo find / -name copy_fetch.c来查找
copy_fetch.c文件中的copy_file_range修改为copy_file_chunk

2.4 执行安装

root下创建postgres用户和数据目录,并修改权限

adduser postgres
mkdir -p /opt/postgresql/10/data
chown -R postgres:postgres /opt/postgresql/10/data
chmod -R go-rwx /opt/postgresql/10/data

注意:data文件权限过大将会无法启动数据库服务
解决办法:chmod -R 0700 data/

2.5 添加路径到文件

su postgres
nano ~/.bashrc

将下面路径添加到文件中

export PATH=/opt/postgresql/10/bin:$PATH
export PGDATA=/opt/postgresql/10/data
export PGHOME=/opt/postgresql/10
export LANG=zh_CN.UTF-8
export PGPORT=5432

最后记得source一下:

source ~/.bashrc

3. 初始化数据库与使用

3.1 初始化数据库

initdb -D /opt/postgresql/10/data --locale=zh_CN.UTF8

在这里插入图片描述

3.2 启动数据库服务

pg_ctl -D /opt/postgresql/10/data -l logfile start

在这里插入图片描述
如果启动失败如下所示:
在这里插入图片描述
执行命令:lsof -i:5432查看端口占用情况
在这里插入图片描述
使用kill命令杀死进程即可释放端口
在这里插入图片描述

3.3 启动数据库

在这里插入图片描述
注:\q表示退出。

致谢:分别参考了以下博客

  1. https://blog.csdn.net/gbz2000/article/details/114817892
  2. https://rng-songbaobao.blog.csdn.net/article/details/103110090

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

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

相关文章

数据结构---手撕图解二叉树(含大量递归图解)

文章目录 写在前面二叉树的创建二叉树的遍历前序遍历中序遍历后序遍历层序遍历 二叉树的销毁二叉树节点个数二叉树叶子节点的个数二叉树查找值为x的节点二叉树是否为完全二叉树 写在前面 二叉树的几乎所有实现都是依靠递归实现,递归的核心思路是把任何一个二叉树看…

idea专业版和idea社区版整合Tomcat,并将war包部署

文章目录 idea专业版和idea社区版整合Tomcat,并将war包部署一、idea专业版部署二、idea社区版部署三、错误案例 idea专业版和idea社区版整合Tomcat,并将war包部署 开发过程中,由于需要运用云平台,所以从新配置开发环境&#xff0…

编程导航算法通关村第 1关 | 单链表的操作

编程导航算法通关村第 1关 | 链表的操作 文章目录 编程导航算法通关村第 1关 | 链表的操作单链表链表的定义初始化链表的遍历获取链表的长度链表的插入链表的节点的删除 双向链表节点的定义双向链表的定义节点的打印获取长度头部插入元素尾部插入元素链表的删除 单链表 链表的…

红队打靶:billu_b0x打靶思路详解(vulnhub)

目录 写在开头 第一步:主机发现和端口扫描 第二步:Web渗透 第三步:利用文件包含进行代码审计 第四步:图片马上传与反弹shell 第五步:敏感文件提权 总结与思考 写在开头 我的博客等级终于到三级了,…

部署langchain+chatglm

先参考:window零基础部署langchain-ChatGLM_飞奔的屎壳郎的博客-CSDN博客 安装一部分, 1.GCC安装 gcc64位下载 一定要装64位的gcc,因为我的电脑是w10 64位的,装32位运行langchain报错并配置环境变量 可直接用压缩包中的文件&am…

Web3的2048,Sui 8192能否打开全链游戏的大门?

作者:Peng SUN,Foresight News Sui 8192:一局游戏就是一个NFT Sui 8192智能合约基于Move语言编写,构成非常简单,包括游戏、Game Board与排行榜(Leaderboard)三部分,覆盖方块移动、…

Leetcode每日一题(困难):834. 树中距离之和(2023.7.16 C++)

目录 834. 树中距离之和 题目描述: 实现代码与解析: DFS 原理思路: 834. 树中距离之和 题目描述: 给定一个无向、连通的树。树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges , edge…

《C++程序设计原理与实践》笔记 第20章 容器和迭代器

本章和下一章将介绍STL,即C标准库的容器和算法部分。关键概念序列和迭代器用于将容器(数据)和算法(处理)联系在一起。 20.1 存储和处理数据 首先考虑一个简单的例子:Jack和Jill各自在测量车速&#xff0c…

GO语言slice

slice: data lencap 以及存取的元素是可以安全读写的 Slice 扩容。 1,预估: 2,预估容量后*字节数 所需的内存 3,各种语言从OS上提前申请内存,匹配GO规则的内存

Windows搭建SVN环境

VisualSVN Server下载 https://www.visualsvn.com/products VisualSVN Server安装创建仓库创建项目创建用户创建组项目分配组VisualSVN下载 https://www.visualsvn.com/products VisualSVN安装项目检出项目检出路径:https://changwq:8443/svn/dev/InterfaceManage 项…

如何实时记录工序流转状态——手机扫码让进度一目了然

对于生产企业来说记录工序的进展状态非常重要,有一部分中小型企业会使用纸制的“工序流转卡”,每日收集齐后再交由专员人工录入到电脑上,这种方式不仅费时费力,还容易出错,更重要的是无法让管理者实时掌握各个订单的进…

【FPGA】基于C5的第一个SoC工程

文章目录 前言SoC的Linux系统搭建 前言 本文是在毕业实习期间学习FPGA的SoC开发板运行全连接神经网络实例手写体的总结。 声明:本文仅作记录和操作指南,涉及到的操作会尽量细致,但是由于文件过大不会分享文件,具体软件可以自行搜…