[原创]OpenEuler20.03安装配置PostgreSQL13.4详细图文版
OpenEuler安装配置PostgreSQL
编写时间:2021年9月18日
作者:liupp
邮箱:liupp@88.com
序号 | 更新内容 | 更新日期 | 更新人 |
---|---|---|---|
1 | 完成第一至三章内容编辑; | 2021年9月18日 | liupp |
2 | |||
3 |
一、准备条件
OpenEuler(Hyper-V虚拟机):
- 版本:20.03 LTS SP2
- 下载地址:https://www.openeuler.org/zh/download/
PostgreSQL:
版本:13.4源码版
因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密码然后回车:看到如下截图代表登录成功:
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
正确执行完毕应未报错:
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
后记
因为是在本地写好,再复制到博客园,如果发现截图有确实,联系留言,我这边再补全。至此,本篇教程结束,接下来研究PGSQL+Pgpool-Ⅱ实现的HA方案,整理完毕后再发稿。此文原创 ,转载请注明出处。谢谢。
[原创]OpenEuler20.03安装配置PostgreSQL13.4详细图文版的更多相关文章
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...
- iis7.5安装配置php环境详细清晰教程,三步实现【图文】
iis7.5安装配置php环境详细清晰教程,三步实现[图文] iis7.5是安装在win7.win8里的web服务器,win2003.win2000的web服务器使用的是iis6.0,由于win7.w ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说
版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- 【转】asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- 安装MySQL8(附详细图文)
安装MySQL8(附详细图文) 删除mysql服务:mysqld -remove mysql 1.下载 mysql 8 下载地址:https://dev.mysql.com/downloads/mys ...
- windwos10安装mysql8.0.20详细图文教程
windwos10安装mysql8.0.20详细图文教程 1.浏览器搜索mysql下载安装 地址:https://dev.mysql.com/downloads/mysql/ 2.登录或者不登录下载 ...
随机推荐
- 【笔记】简谈L1正则项L2正则和弹性网络
L1,L2,以及弹性网络 前情提要: 模型泛化与岭回归与LASSO 正则 ridge和lasso的后面添加的式子的格式上其实和MSE,MAE,以及欧拉距离和曼哈顿距离是非常像的 虽然应用场景不同,但是 ...
- STM32—ADC详解
文章目录 一.ADC简介 二.ADC功能框图讲解 1.电压输入范围 2.输入通道 3.转换顺序 4.触发源 5.转换时间 6.数据寄存器 7.中断 8.电压转换 三.初始化结构体 四.单通道电压采集 ...
- 如何快速方便的生成好看的接口文档(apipost生成文档)
一键生成文档 我们在"2分钟玩转APIPOST"一讲中,简单介绍了如何生成并分享接口文档: 点击分享文档 复制并打开文档地址就可以看到了完整的接口文档. 本节课主要是讲解一些需要注 ...
- 题解 block
传送门 如果不想让next_permutation()自动忽略重复元素,可以在比较函数里加个rk之类的东西使它们不同(next_permutation()不用等于号) 关于第一问:貌似也是一个挺常见的 ...
- C# 通过反射实现对象映射:将2个属性相近的对象相互转换
前言 我们在编程过程中,经常需要将一个对象转成另一个对象(一般称为对象映射). 比如我们有2个类: //第1个类 CLS1 class CLS1 { public int i {get; set;} ...
- WPF---依赖属性(一)
一.概要 C#中属性是抽象模型的核心部分,而依赖属性是专门针对WPF的. 在WPF库实现中,依赖属性使用普通的C#属性进行了包装,使得我们可以通过和以前一样的方式来使用依赖属性. 依赖属性优点如下: ...
- 统计学习:线性可分支持向量机(SVM)
模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...
- 使用Visual Studio分析dump
最近系统是不是CPU会飙升的百分之九十多甚至百分百,在本地又很难复现问题,无法定位问题出现在哪. 可以用转储文件来保存现场,然后通过分析dump文件可以大概分析出问题的所在 生成转存文件 在CPU飙升 ...
- 高德地图——添加标记的两种方法&删除地标记的两种方法
添加标记: 1.marker.setMap(map); 2.marker.add([marker]); 删除标记: 1.marker.setMap(null); 2 map.remove([marke ...
- Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目
前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...