CentOS 7安装 Postgres

news2024/11/28 14:42:51

零、前置条件

  • 系统CentOS 7,并已联网,已安装gcc或者g++编译器,GNU make版本3.80或以上,系统有至少一个除root之外的普通用户user
    • gcc安装-参考链接
    • 查看make命令的版本——make --version
    • 更新make版本-参考链接
    • postgresql的使用一般不用root用户,而是普通用户,这里假设普通用户名为user。Linux创建新用户-参考链接
  • Xshell建立起与CentOS 7系统的会话
  • Xftp同样建立了与CentOS 7的链接

一、下载、转移、解压

下载

  • 首先在本地打开以链接,下载postgresql-xx.xreadline-7.0zlib-1.2.xx
https://www.postgresql.org/ftp/source/
  • PostgresSQL建议下载最新版本,打开后的版本列表中,选择最新的正式版本,最好不要选带beta的
http://ftp.gnu.org/gnu/readline/readline-7.0.tar.gz
  • 下载zlib前,先开官网http://www.zlib.net/看一下最新版本号,比如这里是1.2.13,那么下面下载链接中的版本号就改成最新的版本号
    在这里插入图片描述
http://www.zlib.net/zlib-1.x.xx.tar.gz

转移

  • 在root用户下的/root目录下操作
[root@localhost ~]# mkdir pgsoft
  • 打开xftp,将刚刚下载好的三个压缩包拖到刚刚建立目录下面/root/pgsoft
    在这里插入图片描述

解压

[root@localhost pgsoft]# tar -xf readline-7.0.tar.gz
[root@localhost pgsoft]# tar -xf zlib-1.x.xx.tar.gz
[root@localhost pgsoft]# tar -xf postgresql-xx.x.tar.gz
  • 版本号根据实际情况来

二、安装

readline安装

[root@localhost pgsoft]# cd readline-7.0
[root@localhost readline-7.0]# ./configure
[root@localhost readline-7.0]# make
[root@localhost readline-7.0]# make install
  • 安装readline开发包readline-devel,不然后面安装postgresql时会提示错误configure: error: readline library not found
[root@localhost readline-7.0]# yum install readline-devel

zlib安装

[root@localhost readline-7.0]# cd /root/pgsoft/zlib-1.x.xx
[root@localhost zlib-1.x.xx]# ./configure
[root@localhost zlib-1.x.xx]# make
[root@localhost zlib-1.x.xx]# make install

postgresql安装

# 为pg安装新建一个目录/opt/pgsql-xx.x
[root@localhost ~]# mkdir -p /opt/pgsql-xx.x

# 将opt目录的拥有权给予给普通用户user
[root@localhost ~]# chown user -R /opt	

# 进入下载转移解压后的postgresql目录			
[root@localhost ~]# cd /root/pgsoft/postgresql-xx.x

# 配置postgresql
[root@localhost postgresql-xx.x]# ./configure --prefix=/opt/pgsql-xx.x

# 编译postgresql
[root@localhost postgresql-xx.x]# make world

# 安装postgresql
[root@localhost postgresql-xx.x]# make install -world
  • 验证postgres是否安装成功
# 查看安装目录/opt/pgsql-xx.x,安装成功的话会出现以下四个目录
[root@localhost postgresql-15.3]# ll /opt/pgsql-xx.x/
总用量 16
drwxr-xr-x. 2 root root 4096 69 09:29 bin
drwxr-xr-x. 6 root root 4096 69 09:29 include
drwxr-xr-x. 4 root root 4096 69 09:29 lib
drwxr-xr-x. 6 root root 4096 69 09:29 share

# 查看安装的postgres版本是否对应,这里以15.3版本为例
[root@localhost postgresql-15.3]# /opt/pgsql-15.3/bin/postgres --version
postgres (PostgreSQL) 15.3

三、安装数据目录

  • 数据目录,即后续数据库使用中数据存放的目录
# 递归创建新目录,版本号记得根据实际情况更换
[root@localhost ~]# mkdir -p /pgdata/15.3/poc/{data,archive,scripts,backup}

# 将该目录的拥有权赋给普通用户user
[root@localhost ~]# chown -R user /pgdata/15.3/

# 初始化数据目录
# 首先由root切换到普通用户
[root@localhost pgsoft]# su - userb
上一次登录:五 69 09:32:48 CST 2023pts/0 上
# 进入数据目录,用initdb命令初始化该目录,初始化成功后最后出现Success字样
[user@localhost ~]$ cd /pgdata/15.3/poc
[user@localhost poc]$ /opt/pgsql-15.3/bin/initdb  -D /pgdata/15.3/poc/data/ -E UTF-8
……
……
Success. You can now start the database server using:
    /opt/pgsql-15.3/bin/pg_ctl -D /pgdata/15.3/poc/data/ -l logfile start

# 对数据目录开放读写执行权限
[userb@localhost poc]$ chmod 0700 data/

# 启动PostgreSQL,启动成功后最后一行会出现server started
[userb@localhost poc]$ /opt/pgsql-15.3/bin/pg_ctl -D /pgdata/15.3/poc/data/ start
waiting for server to start....2023-06-09 09:43:50.826 CST [18923] LOG:  starting PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2023-06-09 09:43:50.828 CST [18923] LOG:  listening on IPv6 address "::1", port 5432
2023-06-09 09:43:50.828 CST [18923] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2023-06-09 09:43:50.832 CST [18923] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2023-06-09 09:43:50.836 CST [18926] LOG:  database system was shut down at 2023-06-09 09:42:19 CST
2023-06-09 09:43:50.855 CST [18923] LOG:  database system is ready to accept connections
 done
server started

四、创建PostgreSQL第一个数据库实例

# 使用createdb命令创建第一个数据库实例,如果不产生任何响应则表示该步骤成功
[userb@localhost poc]$ /opt/pgsql-15.3/bin/createdb my_first_pgdb

五、将PostgreSQL的安装路径添加到Shell的搜索路径

# 当前环境变量中的路径
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

# 将postgres安装目录/opt/pgsql-xx.x/bin添加到环境变量中
[root@localhost ~]# export PATH="$PATH:/opt/pgsql-15.3/bin"

# 再次查看环境变量PATH值
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/pgsql-15.3/bin

# 验证是否有效,不在安装目录下,直接运行postgres --version如果能出现相关信息,则表示已经添加成功
[root@localhost ~]# postgres --version
postgres (PostgreSQL) 15.3

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

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

相关文章

年薪百万的高性能计算工程师很难学吗?听OpenBLAS创始人怎么说 ..

想要成为一名高性能计算工程师,入门并掌握相关基础并不困难。 关键在于兴趣和自驱力,因为这是一个偏向底层开发的领域,需要扎实的C和C编程基础。 另外,数学能力也很重要,因为算法开发涉及一些基础的数学知识。对于大部…

【支付平台】java springboot 通过ip获取所在地城市信息

如果只是想知道如何通过ip获取所在地城市信息,可直接看第三步. 如果搭建自己的支付平台,异地支付限制是必不可少的一环.因为市面上一些非法份子,会使用我们平台生成的付款码进行欺诈行为.这也是我们必须杜绝的一种现象.因此限制异地支付就是其中一种手段. 在上一篇文章【三方支…

Golang context 实现原理与源码解读

0 context入门介绍 context是Golang应用开发常用的并发控制技术,主要在异步场景中用于实现并发协调以及对 goroutine 的生命周期控制,它与WaitGroup最大的不同点是context对于派生goroutine有更强的控制力,它可以控制多级的goroutine。 con…

【Android】WMS(一)Window的类型和标志

Window、WindowManager、WMS区别 Window: Window 是 Android 中的一个视图容器,代表整个屏幕或 Activity 的一部分。每个 Window 都有自己的 Surface 对象,Surface 对象具有绘制和渲染功能,可以显示 View 和其他元素。在 Android…

Vue 的基础知识 - 判断, 循环, 事件, 通信

目录 1. 了解 Vue 七大常用属性 2. 文本插值 2.1 v-bind 绑定元素 3. 判断 4. 循环 5. 事件 6. 双向绑定 7. 自定义组件 8. Axios 异步通信 8.1 什么是Axios 8.2 为什么要使用 Axios 8.3 Axios 的简单应用 8.4 Vue 的生命周期 1. 了解 Vue 七大常用属性 1. el 属性…

Qt扫盲-Bar柱状图理论

Bar柱状图理论 一、QAbstractBarSeries1. 常用设置2. 管理 BarSet 二、QBarSerie 和 QHorizontalBarSeries1. 垂直柱状图2. 水平柱状图 二、QPercentBarSeries 和 QHorizontalPercentBarSeries1. 垂直比例图2. 水平比例图 三、QStackedBarSeries 和 QHorizontalStackedBarSerie…

忠诚之源:如何获得铁粉?

文章目录 一、铁粉二、如何吸引和留住铁粉的想法2.1 了解你的目标铁粉2.2 提供有价值的内容2.3 建立良好的关系2.4 持续优化和创新 三、具体可采用的一些方法3.1 提供优质内容3.2 社交媒体互动3.3 创建独特的品牌形象3.4 提供特殊待遇和奖励3.5 参与社区和活动3.6 持续互动和更…

如何把视频语音转换成文字,分享给大家几个免费的方法!

在日常工作和学习中,有时需要将视频中的语音转录为文字,以便整理成文稿或进行其他用途。手动打字效率低下且耗时费力,那么如何快速将语音转换为文字呢?下面介绍几种简单高效的方法,其中之一是使用记灵在线工具。 方法…

PHP的流程控制语句

一.流程控制语句 1.if语句 PHP的if语句格式如下 if(表达式) 语句; 如果表达式的值为真,那么久顺序执行语句;否则,就会跳过该条语句,再往下执行。如果要执行的语句不指一条则用{},{}被称为语句组,格式如…

Immer编写简洁的更新state逻辑

react官网推荐库use-immer:https://www.npmjs.com/package/use-immer 引入:import { useImmer } from "use-immer"; 优点: 简化代码: 只需要关注需要变动的部分,而 immer 本身将在后台处理其余部分。学习成本和替换代…

双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用

查看原文>>>双碳目标下DNDC模型建模方法及在土壤碳储量、温室气体排放、农田减排、土地变化、气候变化中的实践应用 目录 第一讲、DNDC模型介绍 第二讲、DNDC初步操作 第三讲、遥感和GIS基础 第四讲、DNDC气象数据 第五讲、DNDC土地数据 第六讲、DNDC土壤数据 …

【C语言】算法学习·Dijkstra算法详解

目录 Dijkstra算法设计 Dijkstra算法简介 Dijkstra算法的基本思想 Dijkstra贪心策略 完美图解 伪代码详解 完整代码 算法解析及优化拓展 ​使用优先队列的完整代码 Dijkstra算法设计 Dijkstra算法简介 Dijkstra算法是解决**单源最短路径**问题的**贪心算法** …

2021年国赛高教杯数学建模C题生产企业原材料的订购与运输解题全过程文档及程序

2021年国赛高教杯数学建模 C题 生产企业原材料的订购与运输 原题再现 某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A,B,C 三种类型。该企业每年按 48 周安排生产,需要提前制定 24 周的原材料订购和…

如何在 javascript 中按属性值查找数组中的对象

文章目录 使用 find() 方法按属性值在数组中查找对象使用 filter() 方法按属性值查找数组中的对象使用 JavaScript for 循环按属性值查找数组中的对象使用 JavaScript for...in 循环按属性值查找数组中的对象 数组指的是值的有序列表,每个值称为由索引指定的元素。 …

这所西安的985专硕爆冷,保护一志愿,过线即上岸!

本期为大家整理热门院校“西北工业大学”的择校分析,这个择校分析专题会为大家结合:初试复试占比、复试录取规则(是否公平)、往年录取录取名单、招生人数、分数线、专业课难度等进行分析。希望能够帮到大家! –所有数据来源于研招…

Plot、Scatter、Subplot函数用法

目 录 一、Plot()函数 二、Scatter()函数 三、Subplot()函数 一、Plot()函数 格式:matplotlib.pyplot.plot(x,y,format_string.**kwargs) 说明: x:x轴数据,列表或数组,可选(注:当绘制多条曲线时,不能省…

IT 系统巡检必须关注的指标总结

1. 系统整体架构 以下内容作为基本 IT 系统信息被首先调查记录,供分析参考使用。 ● 网络设备配置 ---设备型号, IOS 版本, 模块型号和数量,用途 ● 存储系统配置 ---设备型号, IO 带宽, Cache 容量,磁盘数量,接入模式,存储容…

Go项目配置管理工具---Viper

目录 Viper概述前言功能viper配置优先级 从Viper中获取值读取配置文件注册和使用别名 把值写入Viper设置默认值使用Set方法设置值把配置信息写入配置文件从io.Reader中读取配置信息到viper 监控Viper文件 Viper概述 前言 对于现代应用程序,尤其大中型的项目来说&a…

【MySQL】Mycat

文章目录 什么是Mycat为什么要用Mycatmycat能干什么各数据库中间件对比Mycat原理数据库中间件逻辑库逻辑表分片表分片规则全局表ER表非分片表分片节点节点主机mycat安装mycat核心配置schema.xmlserver.xmlrule.xml加密明文密码(可选) MyCat读写分离垂直拆…

OpenCV中的图像处理3.11(10) OpenCV中的图像变换

目录 3.11 OpenCV中的图像变换3.11.1 傅里叶变换目标理论Numpy中的傅里叶变换OpenCV中的傅立叶变换DFT的性能优化为什么Laplacian是一个高通滤波器?其他资源 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员&…