postgresql14源码编译安装

1.系统环境

  • 系统

    系统版本:centos7.9

    gcc版本:系统自带(4.8.5)

  • make

    3.80版本以上

    make --version
    GNU Make 3.82
    
  • 安装依赖包

    yum install readline readline-devel
    yum install zlib zlib-devel
    

    zlib:默认情况下一般要使用数据库中的压缩功能,需要第三方的zlib压缩开发包支持。

    readline:如果想要方便地在psql中使用上下方向键把历史命令找出来,需要安装readline开发包。

    如果还需要支持其它功能需要安装其它依赖包:

    yum install perl perl-ExtUtils-Embed
    yum install openssl openssl-devel
    yum install libxml2 libxml2-devel
    yum install uuid uuid-devel
    yum install tcl tcl-devel
    yum install python-devel
    

2.安装部署

  • 创建用户

    groupadd postgres
    useradd -g postgres postgres
    passwd postgres
    
  • 创建目录

    df -Th
    mkdir -p /u01/pginstall/pg14.13
    cd /u01/pginstall/pg14.13
    mkdir data
    chown -R postgres:postgres data
    
  • 安装

    可以使用root编译安装,然后使用postgres账户进行数据库的创建

    #以root账号编译安装
    tar zxvf postgresql-14.13.tar.gz
    cd postgresql-14.13
    ./configure --help
    ./configure --prefix=/u01/pginstall/pg14.13 #基础功能
    ./configure --prefix=/u01/pginstall/pg14.13 --with-perl --with-python --with-openssl --with-libxml --with-tcl --with-ossp-uuidmake -j world  #包含contrib目录下的插件
    make install-world
    或者
    make -j
    make install
    cd contrib
    make
    make install
    

    --prefix=/u01/pginstall/pg14.13:这个选项指定了软件的安装目录。

    --with-perl:这个选项启用了Perl语言的支持。PostgreSQL可以使用Perl编写扩展或触发器等,因此如果需要在数据库中使用Perl,就应该启用这个选项。

    --with-python:这个选项启用了Python语言的支持。与Perl类似,启用这个选项后,PostgreSQL将能够使用Python编写扩展或触发器等。

    --with-openssl:启用OpenSSL的支持。OpenSSL是一个强大的开源工具包,用于实现SSL和TLS协议,以及提供加密功能。在PostgreSQL中启用OpenSSL支持可以增强数据库的安全性。

    --with-libxml :用于启用对 XML 数据类型的支持。

    --with-tcl:启用 Tcl(Tool Command Language)语言的支持。这允许 PostgreSQL 使用 Tcl 编写的扩展、触发器或其他功能。

    --with-ossp-uuid:启用 OSSP UUID 库的支持。UUID(Universally Unique Identifier)是一种用于唯一标识信息的标准。启用此选项后,PostgreSQL 可以生成和使用 UUID。

  • 初始化数据库

    /u01/pginstall/pg14.13/bin/initdb -D /u01/pginstall/pg14.13/dataThe files belonging to this database system will be owned by user "postgres".
    This user must also own the server process.The database cluster will be initialized with locale "en_US.UTF-8".
    The default database encoding has accordingly been set to "UTF8".
    The default text search configuration will be set to "english".Data page checksums are disabled.fixing permissions on existing directory /u01/pginstall/pg14.13/data ... ok
    creating subdirectories ... ok
    selecting dynamic shared memory implementation ... posix
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting default time zone ... Asia/Shanghai
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... okinitdb: warning: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using:/u01/pginstall/pg14.13/bin/pg_ctl -D /u01/pginstall/pg14.13/data -l logfile start[postgres@db01 data]$ ll
    total 56
    drwx------ 5 postgres postgres    41 Nov  1 11:47 base
    drwx------ 2 postgres postgres  4096 Nov  1 11:47 global
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_commit_ts
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_dynshmem
    -rw------- 1 postgres postgres  4789 Nov  1 11:47 pg_hba.conf
    -rw------- 1 postgres postgres  1636 Nov  1 11:47 pg_ident.conf
    drwx------ 4 postgres postgres    68 Nov  1 11:47 pg_logical
    drwx------ 4 postgres postgres    36 Nov  1 11:47 pg_multixact
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_notify
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_replslot
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_serial
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_snapshots
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_stat
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_stat_tmp
    drwx------ 2 postgres postgres    18 Nov  1 11:47 pg_subtrans
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_tblspc
    drwx------ 2 postgres postgres     6 Nov  1 11:47 pg_twophase
    -rw------- 1 postgres postgres     3 Nov  1 11:47 PG_VERSION
    drwx------ 3 postgres postgres    60 Nov  1 11:47 pg_wal
    drwx------ 2 postgres postgres    18 Nov  1 11:47 pg_xact
    -rw------- 1 postgres postgres    88 Nov  1 11:47 postgresql.auto.conf
    -rw------- 1 postgres postgres 28765 Nov  1 11:47 postgresql.conf
    
  • 设置环境变量

    vi .bashrc
    export PGDATA=/u01/pginstall/pg14.13/data
    export PATH=/u01/pginstall/pg14.13/bin:$PATHpsql
    \q
    
  • pg_hba.conf

    host    all             all             0.0.0.0/0               md5
    
  • postgres.conf

    listen_addresses = '*'
    
  • 重启

    pg_ctl restart -m fast
    
  • 关闭

    pg_ctl stop -m fast
    -m fast:表示以fast模式快速干净的关闭数据库,关闭过程中回回滚未提交的事务,下次启动无需进行实例恢复。
    MODE can be "smart", "fast", or "immediate"
    smart       quit after all clients have disconnected
    fast        quit directly, with proper shutdown (default)
    immediate   quit without complete shutdown; will lead to recovery on restart
    
  • 启动

    如果设置了PGDATA环境变量:
    pg_ctl start -l logfile
    
  • 查看状态

    pg_ctl status
    pg_ctl: server is running (PID: 2647)
    /data/postgres/13.3/bin/postgrespstree -p 2647
    postgres(2647)─┬─postgres(2649)├─postgres(2650)├─postgres(2651)├─postgres(2652)├─postgres(2653)└─postgres(2654)
    

3.psql使用

  • psql连接数据库

    psql -h localhost -p 5432 -d postgres -U postgres\c 列出当前用户
    \d 列出对象
    create table t1(name text);
    \d t1 列出表结构
    \h create table  查看帮助
    select version();
    \l 列出数据库
    \l+ 包含表空间、大小select pg_postmaster_start_time();数据库启动时间\du 查看用户
    \dt+ t1 查看t1表大小\di 查看索引
    create index idx_name on t1(name);
    \di+ idx_name 查看索引大小创建用户:
    \h create user
    \h create role
    create user fx superuser password '123456';创建数据库:
    create database testdb owner fx;
    \c testdb fx 使用fx用户连接testdb查看表空间:
    \db查看视图:
    \dv
    

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

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

相关文章

深度学习模型入门教程指南

在当前的人工智能生成内容(AIGC)领域中,深度学习模型无疑是支撑其技术核心的关键组件。深度学习模型的广泛应用极大地推动了图像生成、自然语言处理和自动化工作流的发展,本文将从多个角度介绍深度学习模型的概念、构建过程、实际…

C语言指针的介绍

零.导言 在日常生活中,我们常常在外出时居住酒店,细心的你一定能发现酒店不同的房间上有着不同的门牌号,上面写着像308,512之类的数字。当你定了酒店之后,你就会拿到一个写有门牌号的钥匙,凭着钥匙就能进入…

【Spring MVC】DispatcherServlet 请求处理流程

一、 请求处理 Spring MVC 是 Spring 框架的一部分,用于构建 Web 应用程序。它遵循 MVC(Model-View-Controller)设计模式,将应用程序分为模型(Model)、**视图(View)和控制器&#x…

[ 问题解决篇 ] win11远程桌面报错:出现身份验证错误要求的函数不受支持(附完整解决方案)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

汽车免拆诊断案例 | 2010款起亚赛拉图车发动机转速表指针不动

故障现象  一辆2010款起亚赛拉图车,搭载G4ED 发动机,累计行驶里程约为17.2万km。车主反映,车辆行驶正常,但组合仪表上的发动机转速表指针始终不动。 故障诊断  接车后进行路试,车速表、燃油存量表及发动机冷却温度…

自动化运维

自动化运维是指使用工具和脚本自动化管理、配置、监控和维护IT基础设施的过程。通过自动化运维,可以提高工作效率,减少人为错误,增加系统的可预测性和稳定性。以下是实现自动化运维的常见步骤和工具: 常见步骤: 1. 定义…

驱动——线程断链和信息获取

实验环境&#xff1a;win7 x32 断链&#xff1a; #include <ntifs.h>NTSTATUS EnumThread(ULONG ulPid, ULONG ulTid) {PEPROCESS pProcessAddr PsGetCurrentProcess();PLIST_ENTRY pHeadlink (PLIST_ENTRY)((ULONG)pProcessAddr 0xb8);PLIST_ENTRY pNextlink pHead…

AWD挨打记录

前言 昨天参加了星盟的AWD集训&#xff0c;本来寻思能猛猛乱杀&#xff0c;结果加固时间只有20分钟&#xff0c;WAF还没push上去就被三家上了不死马QAQ cms是站帮主&#xff0c;之前没打过&#xff0c;D盾啥也没扫出来&#xff0c;还寻思是个贼安全的系统&#xff0c;结果洞满…

鸿蒙打包hvigorw clean报错No npmrc file is matched in the current user folder解决

问题 在执行hvigorw clean等命令时&#xff0c;报错如下&#xff1a; Error: The hvigor depends on the npmrc file. No npmrc file is matched in the current user folder. Configure the npmrc file first解决方案 在用户当前目录下新建.npmrc文件&#xff0c;并配置如下…

前端如何实现进度条

将进度条的宽度动态控制&#xff0c;通过css的transition动画来控制 <template><div class"container"><div class"base-progress"><div class"inner" :style"{ width: w % }"><div class"text&qu…

SWAT-MODFLOW地表水与地下水耦合实践技术

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果&#xff0c;SWAT作为一个地表水模型可以较好的模拟主要的水文过程&#xff0c;包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等&#xff0c;但是对于地下水部分的模拟相对粗糙&#xff0c;考虑到SWAT…

江协科技STM32学习- P27 实验-串口发送/串口接收

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

Linux笔记--基础入门

文章目录 Linux基础知识点文件目录*磁盘分区**基础命令*Linux运行级别关机重启手册alias别名ntsysv系统服务管理程序 Linux常用命令命令分类命令行格式选项参数 命令行辅助操作 真常用命令()help命令&#xff1a;帮助指令man手册页manual page绝对路径与相对路径绝对路径&#…

11月1日星期五今日早报简报微语报早读

11月1日星期五&#xff0c;农历十月初一&#xff0c;早报#微语早读。 1、六大行今日起实施存量房贷利率新机制。 2、谷歌被俄罗斯罚款35位数&#xff0c;罚款远超全球GDP。 3、山西吕梁&#xff1a;女性35岁前登记结婚&#xff0c;给予1500元奖励。 4、我国人均每日上网时间…

Pandas DataFrame学习补充

1. 从字典创建&#xff1a;字典的键成为列名&#xff0c;值成为列数据。 import pandas as pd# 通过字典创建 DataFrame df pd.DataFrame({Column1: [1, 2, 3], Column2: [4, 5, 6]}) 2. 从列表的列表创建&#xff1a;外层列表代表行&#xff0c;内层列表代表列。 df pd.Da…

<项目代码>YOLOv8 煤矸石识别<目标检测>

YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题&#xff0c;能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法&#xff08;如Faster R-CNN&#xff09;&#xff0c;YOLOv8具有更高的…

推荐一款功能强大的文字处理工具:Atlantis Word Processor

Atlantis word proCEssor是一款功能强大的文字处理工具。该软件可以让用户放心的去设计文档&#xff0c;并且软件的界面能够按用户的意愿去自定义&#xff0c;比如工具栏、字体选择、排版、打印栏等等&#xff0c;当然还有更多的功能&#xff0c;比如你还可以吧软件界面中的任何…

「虚拟现实中的心理咨询:探索心灵世界的新方法」

内容概要 当我们想到虚拟现实时&#xff0c;很多人会联想到游戏或娱乐&#xff0c;但如今其在心理咨询领域的应用正在逐渐崭露头角。传统的心理咨询方式常常局限在咨询室内&#xff0c;面临着空间和情感隔阂的问题。然而&#xff0c;沉浸式环境的出现&#xff0c;使得治疗者能…

图像修复与重建——几何失真(畸变)的概念

一 几何失真&#xff08;畸变&#xff09;的概念 在实际的成像系统中&#xff0c;图像捕捉介质平面和物体平面之间不可避免地存在有一定的转角和倾斜角。转角对图像的影响是产生图像旋转&#xff0c;倾斜角的影响表现为图像发生投影变形。另外一种情况是由于摄像机系统本身的原…

Spark的集群环境部署

一、Standalone集群 1.1、架构 架构&#xff1a;普通分布式主从架构 主&#xff1a;Master&#xff1a;管理节点&#xff1a;管理从节点、接客、资源管理和任务 调度&#xff0c;等同于YARN中的ResourceManager 从&#xff1a;Worker&#xff1a;计算节点&#xff1a;负责利…