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

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

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

相关文章

【面试高频算法解析】算法练习1 二分查找

目录 前言算法解析练习题二分查找在排序数组中查找元素的第一个和最后一个位置搜索旋转排序数组 前言 本篇章开放目的是按算法类型学习算法,学习对应算法理论,并通过练习一些经典算法题深入理解这类算法,避免出现刷了很多算法题,…

golang学习专栏

GOLANG专栏 Golang基础教程 Golang基础教程 Golang练手算法 Golang练手算法 Golang设计模式 Golang设计模式 Golang数据结构和算法 Golang数据结构和算法 Golang并发编程 Golang并发编程 ORM框架Gorm Golang ORM框架gorm Golang源码分析 Golang源码分析 MySQL教程 MySQ…

11.Kubernetes Ingress NGINX Controller 部署

Ingresss是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。 Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。 Ingress NGINX Controller 是kubernetes官方维护的 Ingress 控制器 至此、kubernetes必要的组件都已经安装完成,后面可以演示一…

Java 读取超大excel文件

注意&#xff1a;此参考解决方案只是针对xlsx格式的excel文件&#xff01; Maven <dependency><groupId>com.monitorjbl</groupId><artifactId>xlsx-streamer</artifactId><version>2.2.0</version> </dependency>读取方式1…

xxl.job docker 命令部署

xxl.job docker 命令部署 docker run -e \ PARAMS"--xxl.job.accessTokentoken123456 \ --server.servlet.context-path/xxjob-path \ --spring.datasource.usernamexxl_job \ --spring.datasource.passwordmysqlpwd \ --spring.datasource.urljdbc:mysql://192.168.121.…

安装elasticsearch、kibana、IK分词器、扩展IK词典

安装elasticsearch、kibana、IK分词器、扩展IK词典 后面还会安装kibana&#xff0c;这个会提供可视化界面方面学习。 需要注意的是elasticsearch和kibana版本一定要一样&#xff01;&#xff01;&#xff01; 否则就像这样 elasticsearch 1、创建网络 因为我们还需要部署k…

java常用数据结构

List&#xff1a;ArrayList 和 LinkedList 1、ArrayList 和 LinkedList都是非线程安全 2、ArrayList 可以直接根据下表定位元素&#xff0c;查找速度快&#xff0c;但是修改元素慢&#xff1b;LinkedList 查找元素必须从第一个开始逐个查找&#xff0c;查找速度慢&#xf…

力扣labuladong一刷day51天单调栈应用

力扣labuladong一刷day51天单调栈应用 一、239. 滑动窗口最大值 题目链接&#xff1a;https://leetcode.cn/problems/sliding-window-maximum/ 思路&#xff1a;滑动窗口最大值&#xff0c;既要维护加入的时间顺序&#xff0c;又要 class Solution {public int[] maxSliding…

QT上位机开发(会员管理软件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了ini文件的解析办法&#xff0c;通过QSettings类就可以很轻松地访问ini文件里面的数据。除了ini文件之外&#xff0c;另外一种经常出…

pip安装报错SSL

confirming the ssl certificate: HTTPSConnectionPool(hostmirrors.cloud.tencent.com, port443) 错误代码如上 偶然搜索&#xff1a;ubuntu pip出错 confirming the ssl certificate: HTTPSConnectionPool(host‘mirrors.cloud.tencent.com’, port443) 看到这个回答 【日常踩…

第6章-第2节-Java中的String类

1、字符串体系&#xff1a;又被称为不可变的字符序列 理解&#xff1a;描述生活中的一句话&#xff0c;内容可长可短&#xff0c;长到没有上限要求&#xff0c;短到可以没有内容 类型&#xff1a;java.lang.String类 特点&#xff1a; 1&#xff09;、不可以被别的类继承…

GC6150 5V低压步进电机驱动芯片,低噪声、低振动 应用于摄像机,机器人 医疗器械等产品中。

GC6150是双通道5V低压步进电机驱动器&#xff0c;具有低噪声、低振动的特点&#xff0c;特别适用于相机变焦对焦系统、万向架、摇头机等精度、低噪声STM控制系统&#xff0c;该芯片为每个通道集成了一个256微步的驱动器。通过SPI & T2C接口&#xff0c;客户可以方使地调整驱…

【SpringBoot3】命令行运行jar包报错可能的一些原因

端口号冲突&#xff1a; 有其他的web程序在运行&#xff0c;占用了8080端口没有主清单属性&#xff1a; 在打包jar包前&#xff0c;没有加入打包的插件spring-boot-maven-plugin&#xff0c;参考1.SpringBoot入门的第一个完整小项目&#xff08;新手保姆版教会打包&#xff09;…

【EI会议征稿通知】第五届电气、电子信息与通信工程国际学术会议 (EEICE 2024)

第五届电气、电子信息与通信工程国际学术会议 (EEICE 2024&#xff09; 2024 5th International Conference on Electrical, Electronic Information and Communication Engineering (EEICE 2024) 第五届电气、电子信息与通信工程国际学术会议 (EEICE 2024&#xff09;将于20…

docker安装esrally教程

本来用源码安装&#xff0c;首先要安装git,python,jdk&#xff0c;还要配环境特别繁琐&#xff0c;好不容易安装好后运行报如下错误&#xff0c;在官网和github搜不到解决方案&#xff0c;无奈之下只能用docker安装。 [ERROR] Cannot race. Error in load generator [0]Cannot…

redis容灾的方案设计

背景 今年各个大厂的机房事故频繁&#xff0c;其中关键组件Redis是重灾区&#xff0c;本文就来看下怎么做Redis的多机房容灾 Redis多机房容灾方案 1.首先最最直观的是直接利用Redis内部的主从数据同步来进行灾备&#xff0c;但是由于Redis内部的主从实现对机房间的网络延迟等…

基于ssm的剧本杀预约系统+vue论文

摘 要 如今社会上各行各业&#xff0c;都在用属于自己专用的软件来进行工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。互联网的发展&#xff0c;离不开一些新的技术&#xff0c;而新技术的产生往往是为了解决现有问题而产生的。针对于剧本杀预…

el-table表格动态添加列。多组数据拼接和多层级数据的处理

提示&#xff1a;el-table表格动态添加列 文章目录 前言一、多组数据拼接二、多层级处理三、实际应用中&#xff0c;为避免闪屏&#xff0c;可以表格数据统一渲染总结 前言 需求&#xff1a;富文本编辑器 一、多组数据拼接 <template><div class"test">…

深度确定性策略梯度 DDPG

深度确定性策略梯度 DDPG 深度确定性策略梯度 DDPG模型结构目标函数算法步骤适合场景 深度确定性策略梯度 DDPG A2C、A3C 都是在线策略&#xff0c;在与环境交互时&#xff0c;样本参数更新效率低&#xff0c;所以主要是应用在离散空间&#xff0c;计算量没那么大。 DDPG 专用…

「2023年终总结,这就是我的成长见证」有奖征集活动!

2023年已去&#xff0c;2024年已至。总结这一年的成绩&#xff0c;大家都想到了什么呢&#xff1f;是在工作中取得了长足的进步&#xff0c;还是在生活中喜结良缘&#xff1b;是离梦想挥挥手变得更近&#xff0c;还是在现实的道路上更上一层楼。 一叶荣华春秋意&#xff0c;年月…