OpenEuler20.03源码安装配置PostgreSQL13.4详细图文版

news2024/11/24 15:46:00

OpenEuler安装配置PostgreSQL

序号更新内容更新日期更新人
1完成第一至三章内容编辑;2021年9月18日liupp
2增加PostgreSQL服务开机自动启动;2021年10月25日liupp

一、准备条件

OpenEuler(Hyper-V虚拟机):

  • 版本:20.03 LTS SP2
  • 下载地址:https://www.openeuler.org/zh/download/

PostgreSQL:

  • 版本:13.4源码版

  • 下载地址:https://www.postgresql.org/download/

  • 因PostgreSQL并未对OpenEuler发行版发布打包安装版本,需要我们自己下载源码进行编译安装,其他linux发行版如果有打包版,可以自行下载安装。

    源码下载位置:



*选择当前稳定版的最新版的tar.gz压缩文件,可以复制右键复制下载链接,保存备用。

下载链接:https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz

二、安装OpenEuler

2.1 安装提示

操作系统的安装按照提示进行即可,在进行软件包选择的时候,本次选择了Server模式,右侧的软件包保持默认未选择。

按照提示安装完毕后重启即可进入到登录界面(命令行模式),本次安装未安装图形界面。

注意:系统启动后,默认DHCP自动分配IP,需要先配置网络。

2.2网络配置

登录成功后,输入以下命令获取当前主机的网络配置文件:

/** 1.切换到网络配置文件目录 **/
cd /etc/sysconfig/network-scripts/

/** 2.查看配置文件名称 **/
ls 

获取到配置文件名称如下:

配置文件名称为“ifcfg-eth0”,此时可以使用 “vi 文件名”来编辑该文件,如果对vi工具熟悉的情况下,以上操作可以通过一条命令来处理:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

默认配置如下:

需要修改的配置项如下:

  • BOOTPROTO:将dhcp 修改为 none,代表将采用静态分配IP地址;
  • ONBOOT:将no 修改为 yes,代表在启动时自动启用该设备;
  • 新增:IPADDR=192.168.12.132 //代表分配的IP地址,这里根据情况自行设定;
  • 新增:GATEWAY=192.168.12.254 //默认网关
  • 新增:PREFIX=24 //掩码
  • 新增:DNS1=202.102.224.68 //默认DNS,多个DNS按序号自行增加;

修改后的配置文件如下:

修改完成后保存退出vi编辑模式。

  • vi 打开文件后,进入编辑模式 需要按下 “i”键,编辑完成后,先按下“Esc”键,然后输入“:wq”为保存退出。

输入以下命令重启网络服务:

  systemctl restart NetworkManager

没有错误提示即代表重启成功,可通过ifconfig命令或者"ip a"命令查看当前网络情况,通过ping命令来查看网络是否通畅。

**如果此时重启网络后仍提示服务不可用,且无法ping通各个网站的话,可以停用当前网卡然后重启启用即可。(经测试发现采用Hyper-V创建的OpenEuler虚拟机偶尔出现这种情况,VM配置后直接成功联网。)**命令如下:

# 查看 网卡信息
nmcli con show

# 停用 指定网卡 (eth0为查询到的配置网卡信息)
nmcli con down eth0

# 启用 指定网卡
nmcli con up eth0

此时网络已通畅,ssh默认是打开的,此时可以通过ssh连接来管理该系统,后续说明均通过ssh来处理。ssh登录成功后如图所示:

三、安装PostgreSQL

3.1安装步骤

  • 阅读官方源码安装说明;

  • 下载源码包;

  • 根据官方说明安装必须依赖;

  • 根据官方说明编译安装PostgreSQL;

  • 配置、启动PostgreSQL;

如无特殊说明,本说明是以root账号登录安装,所以特殊需要系统权限命令不再需要sudo前缀,如实际安装过程未采用root账号导致安装出现错误,可尝试在命令前增加sudo。

3.2官方安装说明

官方源码安装说明文档地址:https://www.postgresql.org/docs/current/installation.html

入口寻找方法:

打开文档后,16.1Short Version章节给了基本安装的命令,其他相关配置的说明见其他章节,16.2Requirements章节说明与之相关的依赖,建议阅读。

3.3下载源码包

1.首先ssh连接上服务器,连接命令:

ssh root@192.168.12.132

回车后输入root密码然后回车:看到如下截图代表登录成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f6I9xZYr-1678067940221)(images/image-20210918123846921.png)]

2.在使用ssh登录后,默认在root用户的根目录,我们可以创建一个tools文件,将下载的源码包放置在该文件夹下,命令如下:

mkdir tools
cd tools
wget https://ftp.postgresql.org/pub/source/v13.4/postgresql-13.4.tar.gz

下载完成见下图:

3.4安装依赖

根据文档说明必要的依赖如下:

  • make 需要版本3.80+

  • gcc

  • tar

  • Readline

  • zlib

其他可选依赖根据自身需要选装。

3.4.1make

检查当前系统make 版本,可通过如下命令:

make --version

得到版本号为4.3,符合安装要求,无需再安装;

3.4.2gcc
gcc -v

查询到gcc已安装,且版本为7.3.0,符合安装条件;

3.4.3tar

tar为解压软件,系统已内置,无需安装;

3.4.4readline

Readline库:它允许psql记住你输入的每个命令,这样就可以通过上下方向键快速输入之前的命令,默认开启,也可以通过编译参数–without-readline来禁止它,建议保留默认。

readline 库系统已经内置,但OpenEuler安装PostgreSQL还要安装readline-devel库。

安装命令:

dnf install readline-devel

yum install readline-devel
3.4.5zlib

zlib为默认的压缩库,同readline,zlib系统已默认内置,但需要额外安装zlib-devel库。

安装命令:

dnf install zlib-devel

yum install zlib-devel
3.4.6 其他

缺少的库也可以一个命令统一安装:

dnf install readline-devel zlib-devel

yum install readline-devel zlib-devel

3.5编译安装

步骤:

  • 解压源码包
  • 根据官方简单版本安装命令编译安装
  • 补充操作
3.5.1解压源码包

回到tools文件夹下,通过tar工具解压源码包到当前目录下,命令如下:

tar -xvf postgresql-13.4.tar.gz

解压后在当前tools下生成一个 postgresql-13.4的文件夹。

3.5.2解释官方提供的安装命令

官方提供的简单版本的安装命令如下:

./configure                       ##配置
make                              ##编译
su                                ##切换管理员权限
make install                      ##安装
adduser postgres                  ##添加postgres用户
mkdir /usr/local/pgsql/data       ##创建data存放目录
chown postgres /usr/local/pgsql/data   ##给postgres用户授权
su - postgres                     ##切换到postgres用户(数据库的操作不允许使用root用户)
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data  ##初始化数据库
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start   ##启动数据库
/usr/local/pgsql/bin/createdb test  ##创建test数据库
/usr/local/pgsql/bin/psql test      ##连接test数据库

官方提供的命令相对简单,这里需要解释一下,部分操作将会修改官方的命令:

configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

其中–prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置了–prefix,如:

./configure --prefix=/usr/local/test

安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录。

*这里我们配置的路径为:

 ./configure --prefix=/usr/local/postgresql	

其他有修改命令将会在编译安装章节单独说明。

3.5.3编译安装

现在我们逐项进行执行。

请保证当前所在目录为:/tools/ postgresql-13.4/

3.5.3.1 configure

执行命令

./configure --prefix=/usr/local/postgresql

正确执行完毕应未报错:

注:如果报错提示有指定包没有,可以离线安装或排除指定包,详情见:https://blog.csdn.net/asd54090/article/details/129355835

3.5.3.2 make

命令输入make后回车,编译过程耗时较长,请耐心等待编译结束。

命令:

make

编译过程未出现Error错误字样,代表编译正常结束。

3.5.3.3 su

该命令为切换root管理权限,但当前操作我们采用的是root账号,所以该命令无需执行,如果您使用的是非root账号,请先执行su命令。

3.5.3.4 make install

命令:

make install

编译过程未出现Error错误字样,代表编译正常结束。

3.5.3.5 adduser postgres

命令:

adduser postgres

创建postgres用户和用户组,默认密码随机,回车后无任何错误提示代表创建成功;

3.5.3.6 mkdir /usr/local/pgsql/data

上面 我们将安装地址修改为了我们自定义的地址,该条命令需要修改一下:

mkdir /usr/local/postgresql/data

3.5.3.7 chown postgres /usr/local/pgsql/data

同样该命令修改为:

chown postgres /usr/local/postgresql/data

3.5.3.8 su - postgres

切换到postgres用户

3.5.3.8 数据库操作

因为我们修改了安装位置,所以如下命令都要根据实际安装位置修改。

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data  ##初始化数据库

修改为:

/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data  ##初始化数据库

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start   ##启动数据库

修改为:

/usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l logfile start   ##启动数据库

启动成功。

/usr/local/pgsql/bin/createdb test  ##创建test数据库

修改为:

/usr/local/postgresql/bin/createdb test  ##创建test数据库

/usr/local/pgsql/bin/psql test      ##连接test数据库

修改为:

/usr/local/postgresql/bin/psql test      ##连接test数据库

出现“test=#”代表已经成功连接test数据库,可以进行相关sql操作了。

3.5.4.补充操作
3.5.4.1配置数据库远程连接

经过以上操作,数据库已经成功安装完成,可以通过ps命令查看后台进程确认:

但是无法从外部通过数据库工具连接,所以我们需要简单对postgres进行配置。

进入postgrelsql下的data目录,命令及目录结构如下:

base目录是表空间目录,global目录是相关全局变量目录, pg_hba.conf是访问控制配置文件,postgresql.conf是postgresql主配置文件。我们需要修改的配置文件为pg_hba.conf和postgresql.conf文件。

修改pg_hba.conf文件,命令如下:

vi pg_hba.conf	

拉到最下面,找到如下图所示:

修改红框内容,修改为:

保存退出。

修改postgresql.conf文件,命令如下:

vi postgresql.conf

在展开到内容中找到“# - Connection Settings -”配置项:

修改红圈圈中内容,将前面的“#”去掉,修改’localhost’为’*‘,其他配置项保持不变,保存退出。

配置完毕后应在防火墙对5432端口放行,此时使用postgres用户(密码随机,如果自行修改postgres密码知晓的情况下可以直接执行)无法执行,应先退出postgres账号,返回到root账号。执行命令如下:

exit    ##退出postgres账号

##以下命令在root账户下执行
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent     ##配置防火墙放行5432端口
sudo firewall-cmd --reload       ##防火墙重新加载配置文件

此时切换回postgres账号,停止postgressql服务后,重新启动发现无法启动,报错如下:

报错原因:没有指定启动日志的路径。启动命令和停止命令中的logfile需要指定为具体的log日志的命令。此时我们使用postgres账户在postgresql目录创建log文件夹是没有权限的,在3.5.3.7章节,我们只给postgres账号授权了data目录。我们做如下操作:

  • 1.切换回root账号;
  • 2.给postgres账号授权/usr/local/postgresql目录的权限;
  • 3.再切换回postgres账号进行log文件夹的创建;

在log文件夹下创建server.log文件:

命令如下:

touch log/server.log	

创建成功后修改启动命令为:

/usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l /usr/local/postgresql/log/server.log start

执行命令,启动成功。

此时使用外部的sql工具如navicat测试网络是畅通的,但是我们需要修改一下数据库账户postgres的默认密码才能进行连接,先使用本地postgres账号连接默认数据库来修改数据库账户postgres的密码:

/usr/local/postgresql/bin/psql      ##使用postgres用户连接默认postgres数据库;
ALTER USER postgres WITH PASSWORD 'postgres';     #修改数据库用户postgres的密码为postgres;

此时使用Navicat测试数据库连接成功。

3.5.5.2配置环境变量

截止到现在如果我们想在安装postgresql的服务器使用psql或其他提供的工具连接数据库,就必须输入psql的全路径来调用,如:

/usr/local/postgresql/bin/psql 

并不是很方便我们使用,此时我们可以将postgresql配置到系统环境变量里面去,注意:请配置到postgres用户或者其他自定义操作postgresql的用户的bash_profile环境变量中,不要配置到root账号的环境变量中,或者可以配置到etc/profile中,单独配置到root的环境变量中时不能使用的。

配置请以root用户配置:

vi /etc/profile

##将如下内容添加到文件末尾
PATH=/usr/local/postgresql/bin:$PATH
export PATH

##保存退出后执行刷新配置
source /etc/profile

##切换到postgres用户
su - postgres

##此时就可以直接执行psql命令了
psql

3.5.5.3设置PostgreSQL为开机启动

PostgreSQL的开机自动启动脚本位于PostgreSQL源码目录下的contrib/start-scripts目录下:

其中linux文件为linux环境下的开机自启动脚本,将其拷贝到“/etc/init.d”目录下,并改名为postgresql:

cp linux /etc/init.d/postgresql

切换到/etc/init.d目录,使用vi打开postgresql文件修改如下内容:

#修改前:
#Installation prefix
prefix=/usr/local/pgsql

#修改后: 
#Intalllation prefix[2021-10-25]
prefix=/usr/local/postgresql

#修改前:
# Data directory
#PGDATA="/usr/local/pgsql/data"

#修改后:
# Data directory[2021-10-25]
PGDATA="/usr/local/postgresql/data"

# Who to run the postmaster as, usually "postgres".  (NOT "root")
# 将启动用户修改为实际用户,这里使用postgres,所以不变。
PGUSER=postgres

#修改前:
# Where to keep a log file
PGLOG="$PGDATA/serverlog"

#修改后:
# Where to keep a log flie[2021-10-25]
PGLOG="/usr/local/postgresql/log/server.log"

然后保存退出。

然后修改postgresql文件的执行权限:

chmod a+x postgresql

添加开机启动:

chkconfig --add postgresql

然后重启服务器开机验证即可。

转载至:https://www.cnblogs.com/boyliupan/p/15324331.html

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

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

相关文章

推荐几个超实用的开源自动化测试框架

有什么好的开源自动化测试框架可以推荐?为了让大家看文章不蒙圈,文章我将围绕3个方面来阐述: 1、通用自动化测试框架介绍 2、Java语言下的自动化测试框架 3、Python语言下的自动化测试框架 随着计算机技术人员的大量增加,通过编写…

什么是MyBatis?无论是基础教学还是技术精进,你都应该看这篇MyBatis

文章目录学习之前,跟你们说点事情,有助于你能快速看完文章一、先应用再学习,代码示例1. 第一个MyBatis程序2. MyBatis整合Spring3. SpringBoot整合MyBatis二、MyBatis整体流程,各组件的作用域和生命周期三、说说MyBatis-config.xm…

流域土壤保持及GIS实现

流域土壤保持及GIS实现 流域水土过程模拟与生态调控 01 土壤保持模拟 土壤侵蚀不仅会引起耕地生产力下降、河床抬升、泥沙淤积阻塞河道等生态环境问题,也会对人们正常的生产生活产生威胁。生态系统的土壤保持量(吨/公顷/年),是…

$3 : 水​​​​​项目实战 - 水果库存系统

javase知识点复习: final关键字:http://t.csdn.cn/bvFgu 接口的定义,特性,实现,继承:http://t.csdn.cn/tbXl3 异常:http://t.csdn.cn/VlS0Z DAO的概念和角色(设计理念)&a…

适配PyTorch FX,OneFlow让量化感知训练更简单

作者 | 刘耀辉审稿 | BBuf、许啸宇1背景近年来,量化感知训练是一个较为热点的问题,可以大大优化量化后训练造成精度损失的问题,使得训练过程更加高效。Torch.fx在这一问题上走在了前列,使用纯Python语言实现了对于Torch.nn.Module…

学习笔记:Java并发编程(补)CompletableFuture

学习视频:https://www.bilibili.com/video/BV1ar4y1x727 参考书籍:《实战 JAVA 高并发程序设计》 葛一鸣 著 系列目录 学习笔记:Java 并发编程①_基础知识入门学习笔记:Java 并发编程②_共享模型之管程学习笔记:Java 并…

win10开机黑屏只有鼠标怎么办?这里有4个妙招

真实案例:电脑开机黑屏,只出现鼠标箭头光标怎么办? “早上打开电脑,发现开不了机,屏幕上只有一个鼠标光标!百度搜索了很长时间,但所有的方法都没有奏效。求教各位大神,有什么好方法…

中电金信源启小程序开发平台 赋能金融+业务生态共享共建

导语:源启小程序开发平台立足于“为金融业定制”,从小程序全生命周期的角度出发,助力银行、互联网金融、保险、证券客户实现一站式小程序开发、发布、运营与营销。企业可以通过源启小程序开发平台,低成本高效率开发一款定制化小程…

The 19th Zhejiang Provincial Collegiate Programming Contest vp

和队友冲了这场,极限6题,重罚时铁首怎么说,前面的A题我贡献了太多的罚时,然后我的G题最短路调了一万年,因为太久没写了,甚至把队列打成了优先队列,没把head数组清空完全,都是我的锅呜…

搭载英伟达Jetson Orin的Allspark 2全新亮相,算力高达100TOPS!

Allspark 2 系列AI边缘计算机 Allspark 2经过设计优化的铝合金外壳,内置静音涡轮风扇,散热优秀。尺寸102.5X62.5X31mm,整机重量188g。 相比Allspark 1,2代整机轻了25克,更加轻薄。 在机身更加轻薄的情况下&#xff0c…

1497. 树的遍历

文章目录1.二叉树的遍历2.二叉树的构造3.例题3.1不使用BFS3.2使用BFS二叉树的构造:没有中序遍历则无法唯一构造1.二叉树的遍历 2.二叉树的构造 3.例题 一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它…

蓝桥杯训练day2

day21.二分(1)789. 数的范围(2)四平方和(1)哈希表做法(2)二分做法(3)1227. 分巧克力(4)113. 特殊排序(5)1460. 我在哪?2.双指针(1)1238. 日志统计(2)1240. 完全二叉树的权值(3&#…

koa-vue的分页实现

1.引言 最近确实体会到了前端找工作的难处,不过大家还是要稳住心态,毕竟有一些前端大神说的有道理,前端发展了近20年,诞生了很多leader级别的大神,这些大神可能都没有合适的坑位,我们新手入坑自然难一些&am…

HD-G2L-IOT V2.0核心板MPU压力测试

1. 测试对象HD-G2L-IOT基于HD-G2L-CORE V2.0工业级核心板设计,双路千兆网口、双路CAN-bus、2路RS-232、2路RS-485、DSI、LCD、4G/5G、WiFi、CSI摄像头接口等,接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。H…

PMP高分上岸人士的备考心得,分享考试中你还不知道的小秘密

上岸其实也不是什么特别难的事情,考试一共就180道选择题,题目只要答对60.57%就可以通过考试,高分通过没在怕的,加油备考呀朋友们! 这里也提一嘴,大家备考的时候比较顾虑的一个问题就是考试究竟要不要报班…

js循环判断的方法

js循环判断的方法if语句if else语句if else if else if......三元表达式switchswitch语句和if语句的区别for循环while循环do while循环for inforEachfor of性能问题if语句 条件满足就执行,不满足就不执行 if(条件){语句}if else语句 条件满足,执行语句…

认识3D旋转变换矩阵

前文输出了cesium的Rotation变量,一个矩阵;把这矩阵写下来看下; 0.99939 -0.034899 0 0 0.034899 0.99939 0 0 0 0 1 0 0 0 0 1 看一下3D数学的相关描述;…

周赛335(模拟、质因子分解、分组背包)

题解:0x3f https://leetcode.cn/problems/number-of-ways-to-earn-points/solution/fen-zu-bei-bao-pythonjavacgo-by-endlessc-ludl/ 文章目录周赛335[6307. 递枕头](https://leetcode.cn/problems/pass-the-pillow/)模拟[6308. 二叉树中的第 K 大层和](https://le…

扬帆优配|本周限售股解禁规模不足300亿元,这8家公司解禁压力大

本周限售股解禁规模环比大降至300亿元之下。 Wind数据显示,除掉新上市公司,本周A股商场共有36家公司限售股解禁,解禁数量27.69亿股,以最新收盘价核算(下同),解禁市值268.81亿元。 解禁市值超越…

【第二章 @RequestMapping注解(value,method,params属性),springMVC支持ant风格的路径,支持路径中的占位符】

第二章 RequestMapping注解(value,method,params属性),springMVC支持ant风格的路径,支持路径中的占位符 1. RequestMapping注解: (1) RequestMapping注解的作用就是将请…