当前位置: 首页 > news >正文

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装

  • 1、环境
  • 2、安装包下载
  • 3、安装
    • 3.1 、解压
    • 3.2、配置
    • 3.3、编译安装
    • 3.4 、启动与关闭
  • 4、安装 uuid-ossp 、plpython2u插件
  • 5、参考

1、环境

centos 7 、 postgresql 10.19

2、安装包下载

postgres 源码安装包
在这里插入图片描述

3、安装

3.1 、解压

cd /tmp
tar -xzvf postgresql-10.19.tar.gz

3.2、配置

注:配置的时候一定要带上这两个选项,因为后面我要安装 uuid-ossp 、plpython2u插件
–with-python
–with-uuid=ossp \

./configure \
--prefix=/pg \
--exec-prefix=/pg \
--bindir=/pg/bin \
--sysconfdir=/pg/etc \
--libdir=/pg/lib \
--includedir=/pg/include --mandir=/pg/man --docdir=/pg/doc \
--htmldir=/pg/html \
--enable-nls='zh_CN en_US' \
--with-pgport=5432 \
--with-perl \
--with-python \
--with-tcl \
--with-icu \
--with-openssl \
--with-pam \
--with-ldap \
--with-systemd \
--with-readline \
--with-libxml \
--with-libxslt \
--with-segsize=1 \
--with-blocksize=8 \
--with-wal-segsize=16 \
--with-wal-blocksize=8 \
--with-uuid=ossp \
--without-zlib

配置的过程中,会提示缺少包,需要根据提示,手动安装这些包

yum install -y gcc
yum install -y libicu-devel.x86_64
yum install -y perl-ExtUtils-Embed.noarch
yum install -y readline-devel.x86_64
yum -y install openssl-devel
yum -y install pam-devel.x86_64
yum install -y libxml2-devel.x86_64
yum install -y libxslt.x86_64
yum install -y libxslt-devel.x86_64
yum install -y openldap-devel.x86_64
yum install -y systemd-devel.x86_64
yum install -y tcl-devel.x86_64
yum install -y python-devel.x86_64

3.3、编译安装

1、编译
首先进行编译,使用make命令进行编译,如果希望编译所有的东西,包括文档(man、html)和附加模块(contrib),使用

make world

如果最后1行出现下面的描述,说明编译成功
PostgreSQL, contrib, and documentation successfully made. Ready to install.

2、安装

make install

当最后1行出现"PostgreSQL installation complete."时,说明安装成功了。

NOTE:这条命令会把文件安装到2.2指定的路径,需要确保有足够的权限向该区域写入。通常需要使用root权限操作,或者也可以事先创建目录并分配权限给相应的用户

3、创建pg用户

adduser postgres
passwd postgresmkdir -p /pg/data
chown -R postgres:postgres /pg/

4、初始化数据库

su - postgres# 初始化
/pg/bin/initdb -D /pg/data
# 或者
/pg/bin/pg_ctl -D /pg/data initdb

5、设置环境变量
在postgres用户下配置pg数据库的环境变量

[postgres@pg01 ~]$ cat .bash_profile
# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/bin:/pg/binexport PATHexport PGHOME=/pg
export PGDATA=/pg/data
export LD_LIBRARY_PATH=/pg/lib
export MANPATH=/pg/man
export PATH=/pg/bin:$PATH
[postgres@pg01 ~]$

6、使用source命令生效

[postgres@pg01 ~]$ source .bash_profile

3.4 、启动与关闭

1、在postgresql用户下使用pg_ctl

# 1.启动数据库
/pg/bin/postgres -D /pg/data >logfile 2>&1 &
# 或者可以使用pg_ctl命令
/pg/bin/pg_ctl -D /pg/data -l /tmp/logfile start# 2.关闭数据库
/pg/bin/pg_ctl -D /pg/data -l /tmp/logfile stop# 3.查看数据库状态
/pg/bin/pg_ctl -D /pg/data status

2、使用root配置systemd管理数据库

# 1.使用root用户配置
su - rootvim /etc/systemd/system/postgresql.service[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)[Service]
Type=notify
User=postgres
ExecStart=/pg/bin/postgres -D /pg/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=0[Install]
WantedBy=multi-user.target# 2.重新加载systemd配置
[root@pg01 pg]# systemctl daemon-reload# 3.启动、关闭、状态,使用root用户
systemctl start postgresql
systemctl stop postgresql
systemctl status postgresql# 4.配置开机自启动
systemctl enable postgresql

4、安装 uuid-ossp 、plpython2u插件

我们有时候需要像Oracle或MySQL那样可以通过函数sys_guid()或uuid()来获得uuid,如:bdf7eb80-776f-11eb-b4e3-0800277427f4。默认postgresql并没有该功能,但是可以通过扩展uuid-ossp来实现。

1、检查是否已安装扩展uuid-ossp

postgres=# select * from pg_extension;oid  | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-------+---------+----------+--------------+----------------+------------+-----------+--------------13579 | plpgsql |       10 |           11 | f              | 1.0        |           | 
(1 row)

可以看到postgresql目前没有安装uuid-ossp扩展。
2、检查是否有可用来安装的扩展uuid-ossp
查看当前可用的扩展:

postgres=# select * from pg_available_extensions;name    | default_version | installed_version |                  comment                  
------------+-----------------+-------------------+-------------------------------------------plpgsql    | 1.0             | 1.0               | PL/pgSQL procedural languageplperl     | 1.0             |                   | PL/Perl procedural languageplperlu    | 1.0             |                   | PL/PerlU untrusted procedural languageplpython2u | 1.0             |                   | PL/Python2U untrusted procedural languageplpythonu  | 1.0             |                   | PL/PythonU untrusted procedural language
(5 rows)

可以看到postgres目前并没有可用的uuid-ossp扩展。
此时,直接创建uuid-ossp会报错,如:

postgres=# create extension "uuid-ossp";
ERROR:  could not open extension control file "/opt/pgsql12.2/share/extension/uuid-ossp.control": No such file or directory

3、PG源码文件下编译安装扩展
3.1 安装uuid依赖包

[root@Location-01 ~]# yum -y install e2fsprogs-devel uuid uuid-devel libuuid-devel

3.2 编译安装uuid-ossp
进入扩展目录:(注意只有源码安装且要带上 --with-uuid=ossp 选项才有这个目录)

[root@VM_0_11_centos uuid-ossp]# pwd
/tmp/postgresql-10.19/contrib/uuid-ossp
[root@VM_0_11_centos uuid-ossp]# ls
expected  sql                      uuid-ossp--1.1.sql  uuid-ossp.control  uuid-ossp.so
Makefile  uuid-ossp--1.0--1.1.sql  uuid-ossp.c         uuid-ossp.o        uuid-ossp--unpackaged--1.0.sql

3.3 执行编译安装

[root@Location-01 uuid-ossp]# make && make install

3.4 创建扩展

3.4.1 查看可用扩展

postgres=# select * from pg_available_extensions;name    | default_version | installed_version |                     comment                     
------------+-----------------+-------------------+-------------------------------------------------plpgsql    | 1.0             | 1.0               | PL/pgSQL procedural languageplperl     | 1.0             |                   | PL/Perl procedural languageplperlu    | 1.0             |                   | PL/PerlU untrusted procedural languageplpython2u | 1.0             |                   | PL/Python2U untrusted procedural languageplpythonu  | 1.0             |                   | PL/PythonU untrusted procedural languageuuid-ossp  | 1.1             |                   | generate universally unique identifiers (UUIDs)
(6 rows)

可以看到已经有扩展uuid-ossp了。下面可以创建了。

postgres=# create extension "uuid-ossp";
CREATE EXTENSION

创建成功。
3.5 、使用扩展
安装扩展成功以后,就可以使用函数uuid_generate_v4()来生产uuid了。

postgres=# select uuid_generate_v4();uuid_generate_v4           
--------------------------------------cba03532-aa87-40be-b4e2-cf2e13b71c6e
(1 row)

4、安装plpython2u插件
注意:在安装postgres库的时候一定要带上 --with-python这个选项,

postgres=# CREATE EXTENSION "plpython2u";
CREATE EXTENSION

5、参考

1、PostgreSQL10数据库源码安装
2、postgresql12下安装uuid-ossp

相关文章:

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装

PostgreSQL10数据库源码安装及plpython2u、uuid-ossp插件安装 1、环境2、安装包下载3、安装3.1 、解压3.2、配置3.3、编译安装3.4 、启动与关闭 4、安装 uuid-ossp 、plpython2u插件5、参考 1、环境 centos 7 、 postgresql 10.19 2、安装包下载 postgres 源码安装包 3、安…...

如何成为ChatGPT 优质Prompt创作者

如何提问? 我想让你成为我的Prompt创作者。你的目标是帮助我创作最佳的Prompt,这个Prompt将由你ChatGPT使用。你将遵循 以下过程:1.首先,你会问我Prompt是关于什么?我会告诉你,但我们需要 通过不断的重复来…...

LeetCode第71题 - 简化路径

题目 以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表…...

VSCode上远程调试代码出现的问题

记录一下: 真的是汗流浃背了,师妹叫帮忙如何在VSCode上远程调试代码,一些自己已经经历过的问题,现在已经忘记了。又在网上一顿搜索,这次记录下吧。。。 出现以下问题: 1. 终端界面总是sh-4.4 $ &#xff…...

【langchain】入门初探实战笔记(Chain, Retrieve, Memory, Agent)

1. 简介 1.1 大语言模型技术栈 大语言模型技术栈由四个主要部分组成: 数据预处理流程(data preprocessing pipeline)嵌入端点(embeddings endpoint )向量存储(vector store)LLM 终端&#xff…...

《数据结构、算法与应用C++语言描述》- 平衡搜索树 -全网唯一完整详细实现插入和删除操作的模板类

平衡搜索树 完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_34Balanced search tree 概述 本章会讲AVL、红-黑树、分裂树、B-树。 平衡搜索树的应用? AVL 和红-黑树和分裂树适合内部存储的应用。 B-树适合外部存储的…...

网络路由跟踪工具

随着企业网络需求的增长,组织发现监控和管理其网络基础设施变得越来越困难。网络管理员正在转向其他工具和资源,这些工具和资源可以使他们的工作更轻松一些,尤其是在故障排除方面。 目前,网络管理员主要使用简单、免费提供的实用…...

设计模式 七大原则

1.单一职责原则 单一职责原则(SRP:Single responsibility principle)又称单一功能原则 核心:解耦和增强内聚性(高内聚,低耦合)。 描述: 类被修改的几率很大,因此应该专注…...

(1)(1.13) SiK无线电高级配置(一)

文章目录 前言 1 监控链接质量 2 诊断范围问题 3 MAVLink协议说明 前言 本文提供 SiK 遥测无线电(SiK Telemetry Radio)的高级配置信息。它面向"高级用户"和希望更好地了解无线电如何运行的用户。 !Tip 大多数用户只需要 SiK Radio v2 中提供的基本…...

drf知识--10

接口文档 # 后端把接口写好后: 登录接口:/api/v1/login ---> post---name pwd 注册接口 查询所有图书带过滤接口 # 前后端需要做对接,对接第一个东西就是这个接口文档,前端照着接口文档开发 公司3个人&#xff…...

探索 Vue 实例方法的魅力:提升 Vue 开发技能(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...

mysql死锁排查

查看正在进行中的事务 SELECT * FROM information_schema.INNODB_TRX;字段解释trx_id唯一事务id号,只读事务和非锁事务是不会创建id的trx_state事务的执行状态,值一般分为:RUNNING, LOCK WAIT, ROLLING BACK, and COMMITTING.trx_started事务…...

若依项目(ruoy-vue)多模块依赖情况简要分析

主pom文件关键点分析 properties标签声明变量信息:版本号、编码类型、java版本spring-boot依赖形式:spring-boot-dependencies、pom、importdependencies中添加本项目内部模块,同时在modules中声明模块packaging打包选择pom设置打包maven-co…...

【普中开发板】基于51单片机的篮球计分器液晶LCD1602显示( proteus仿真+程序+设计报告+讲解视频)

基于普中开发板51单片机的篮球计分器液晶LCD1602显示 1.主要功能:讲解视频:2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接(可点击): 基于51单片机的篮球计分器液晶LCD1602显示 ( pr…...

按照层次遍历结果打印完全二叉树

按照层次遍历结果打印完全二叉树 按照推论结果&#xff1a; l 层首个节点位置 2h-l - 1l 层节点间距&#xff1a;2h-l1 - 1 编码实现 public static<E> void print(BinaryTree<E> tree) {List<List<Node<E>>> levelNodeList levelOrderTraver…...

基于SpringBoot的药店管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的药店管理系统,java项目…...

Java 泛型深入解析

Java 中的泛型是一种强大的编程特性&#xff0c;允许我们编写更加通用和类型安全的代码。本篇博客将深入探讨 Java 泛型的各个方面&#xff0c;包括泛型类、泛型方法、泛型接口以及泛型通配符。 1. 泛型类 首先&#xff0c;让我们看一个简单的泛型类的例子。在下面的代码中&a…...

Apache Doris (六十): Doris - 物化视图

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录...

【javaweb】tomcat9.0中的HttpServlet

2023年12月28日&#xff0c;周四晚上 目录 什么是HttpServlet tomcat中的HttpServlet由谁产生 什么是HttpServlet 在Tomcat中&#xff0c;HttpServlet 是 Java Servlet API 中的一个抽象类&#xff0c;用于简化基于HTTP协议的Servlet的开发。HttpServlet 扩展了 GenericServ…...

数据结构学习笔记——查找算法中的树形查找(B树、B+树)

目录 前言一、B树&#xff08;一&#xff09;B树的概念&#xff08;二&#xff09;B树的性质&#xff08;三&#xff09;B树的高度&#xff08;四&#xff09;B树的查找&#xff08;五&#xff09;B树的插入&#xff08;六&#xff09;B树的删除 二、B树&#xff08;一&#xf…...

python包chromadb安装失败总结

1&#xff0c;背景&#xff1a; 最近在学习langchain的课程&#xff0c;里面创建自己的知识库的Retrieval模块中&#xff0c;需要用到向量数据库。 所以按照官方的教程&#xff08;vectorstores&#xff09;&#xff0c;准备使用chroma的向量数据库。图片来源 2&#xff0c;问…...

机器学习(四) -- 模型评估(2)

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 机器学习&#xff08;三&#xff09; -- 特征工程&#xff08;1-2&#xff09; 机器学习&#xff08;四&#xff09; -- 模型评估…...

泊松分布与二项分布的可加性

泊松分布与二项分布的可加性 泊松分布的可加性 例 : 设 X , Y X,Y X,Y 相互独立 , X ∼ P ( λ 1 ) X\sim P(\lambda_1) X∼P(λ1​) , Y ∼ P ( λ 2 ) Y\sim P(\lambda_2) Y∼P(λ2​) , 求证 Z X Y ZXY ZXY 服从参数为 λ 1 λ 2 \lambda_1 \lambda_2 λ1​λ2​ …...

【PostgreSQL】约束-排他约束

【PostgreSQL】约束链接 检查 唯一 主键 外键 排他 排他约束 排他约束是一种数据库约束&#xff0c;用于确保某一列或多个列中的值在每一条记录中都是唯一的。这意味着任何两条记录都不能具有相同的值。 排他约束可以在数据库中创建唯一索引或唯一约束来实现。当尝试插入或更…...

Java重修第一天—学习数组

1. 认识数组 建议1.5倍速学习&#xff0c;并且关闭弹幕。 数组的定义&#xff1a;数组是一个容器&#xff0c;用来存储一批同种类型的数据。 下述图&#xff1a;是生成数字数组和字符串数组。 为什么有了变量还需要定义数组呢&#xff1f;为了解决在某些场景下&#xff0c;变…...

【C#】知识点实践序列之Lock的锁定代码块

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章&#xff0c;此篇文章是C#知识点实践序列之Lock知识点&#xff0c;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 本篇验证Lock锁定代…...

StringBad ditto (motto)

第12章 类和动态内存分配 StringBad ditto (motto): // calls StringBad (comst StringBad &) StringBad metoo - motto: // calls StringBad (const StringBad &) StringBad also StringBad (motto): // calls StringBad (const StringBad &) StringBad * pStri…...

Redis缓存击穿、缓存雪崩、缓存穿透

缓存击穿&#xff08;某个热点key缓存失效&#xff09; 概念 缓存中没有但数据库中有的数据&#xff0c;假如是热点数据&#xff0c;那key在缓存过期的一刻&#xff0c;同时有大量的请求&#xff0c;这些请求都会击穿到DB&#xff0c;造成瞬时DB请求量大、压力增大和缓存雪崩的…...

【PCB专题】Allegro封装更新焊盘

在PCB封装的绘制中&#xff0c;有时会出现需要更新焊盘的情况。比如在制作封装的过程中发现焊盘做的不对而使用PAD_Designer重新更新了焊盘。 那在PCB中如何更新已经修改过的焊盘呢&#xff1f; 打开封装&#xff0c;选择Tools->Padstack->Refresh... 选择Refresh all …...

ES6之Reflect详解

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…...

建一网站要多少钱/百度收录时间

1.图形化界面启动 右击“计算机”&#xff0c;在快捷菜单中选择“管理”命令&#xff0c;如图所示&#xff0c;打开“计算机管理”对话框。也可以执行“开始”|“控制面板”|“管理工具”|“服务”来启动服务。 改成手动模式,每次电脑开机都需要点击启动服务 2. 命令行启动…...

首都农村医学人才培养体系建设与农村医学人才培养的研究与实践 网站/怎样建立自己网站

C:\Users\Public\Thunder Network\XMP5\ProgramData\Subtitle\Online 复制直接拖入上方的地址栏即可找到。...

网站怎么做口碑/链接买卖价格

量化策略研究指的是需要依据一种或多种确凿的获利理念&#xff0c;通过某一特定显式表示的模型&#xff0c;指导参与者反复地以人工或机器执行指令&#xff0c;参与单边或多空交易。在策略的执行过程中&#xff0c;需要实时监控资产组合价值与目标利润的偏离情况&#xff0c;调…...

洛阳专业网站设计开发制作建站公司/推广普通话手抄报简单漂亮

题图&#xff1a;https://unsplash.com/nielsenramon在OO(面向对象)编程中&#xff0c;类中的方法有多种形式&#xff1a;实例方法、静态方法、类方法、甚至还可以有抽象方法&#xff0c;本文来说说实例方法在Python中是如何工作的&#xff0c;后面再来谈其他方法。先来定义一个…...

如何做凡客网站/沈阳seo关键词

有人说&#xff1a;一个人从1岁活到80岁很平凡&#xff0c;但如果从80岁倒着活&#xff0c;那么一半以上的人都可能不凡。 生活没有捷径&#xff0c;我们踩过的坑都成为了生活的经验&#xff0c;这些经验越早知道&#xff0c;你要走的弯路就会越少。 一、异步执行 实现方式二…...

网站策划与运营课程认知/合肥网站建设优化

2019独角兽企业重金招聘Python工程师标准>>> 实现时钟效果。有秒针、分针和时针。 Code4App编译测试&#xff0c;测试环境&#xff1a;Xcode 4.3, iOS 5.0。 转载:http://www.adobex.com/ios/source/details/00000598.htm 转载于:https://my.oschina.net/u/868244/b…...