openGauss数据库在CentOS上的安装实践
本文分享自华为云社区《openGauss数据库在CentOS上的安装实践》,作者:Gauss小松鼠 。
1.安装前准备
安装数据库前先要有已安装centOS 7.6的服务器+数据库安装包。
首先找小伙伴申请了华为云ECS服务器安装好了OS,这里使用的是x86_64+centos。
华为云服务器现在可是很划算呢,安装也很方便。
[root@pekphisprb70593 ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
通过软件包 | openGauss登录openGauss开源社区,选择3.0.0版本对应平台企业版安装包。我用的centos_x86_64,安装包下载到本地。文件名:openGauss-3.0.0-CentOS-64bit-all.tar.gz。

2. python3准备
centos自带的python是python2,不符合官方文档要求。(实际也确实不能支撑openGauss安装,我已经试过了)

而且官方文档只写了要求有python3,并没有详细的说明要怎么装,所以就对一些新手不太友好。
centos要求python只能是3.6.X,而不是及以上,也就是不能用3.7。我这里用的3.6.15。Python3安装还依赖zlib。所以无论在线还是离线安装都需要先把zlib相关安装完成。
如果服务器可以直接连到互联网yum源或者自己公司的yum源 ,就可以参考在线版安装。否则使用离线安装。
2.1 在线版安装
这里要求服务器可以直接连到互联网用yum 或者wget,或者配置了代理。
- 安装依赖包,有些可能系统自带,没关系。
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
完成后会提示“Complete!”
- 下载python安装包。
wget https://www.python.org/downloads/release/python-3615/复制
因为下载很慢,也可以先去python官网 https://www.python.org/downloads/release/python-3615/下载一个新版本到本地再上传到服务器。
解压然后安装python3.6。make编译时间比较长,耐心等待,满屏的输出陪着你。
tar -zxvf Python-3.6.15.tgz cd Python-3.6.15/ ./configure --prefix=/usr/local/python3 --enable-shared make make install
最后提示Successfully就说明安装成功了。

但是,注意此时还需要设置下OS上python的软连接。其中,/usr/local/python3/需要替换为你自己python安装包的实际路径,就是上面./configure的路径。
如果是按照我的指导做的就不用改。
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 ln -s /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/ export LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH
到这里在centos上安装python3.6就完成了。
2.2 离线版安装
由于有时需要在公司内网安装,服务器直接下载不方便,什么 yum 、wget 统统不可用。只能去官网下载软件到windows然后上传linux后安装。
[root@pekphisprb70593 software]# rpm -qa|grep zlib zlib-1.2.7-18.el7.x86_64
所以我机器上自带了1.2.7版本,需要安装1.2.7版本的zlib-devel。自己去搜一个对应版本的上传到服务器上。
rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

剩下的就是按照在线版中说的,将python安装包下载本地后上传,执行与在线版相同的安装和配置动作即可。
3. 修改操作系统配置
目前仅支持在防火墙关闭的状态下进行安装。
修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。使用VIM打开config文件。
vi /etc/selinux/config
查看“SELINUX”的值是否为“disabled”。是的话直接下一步。不是的话修改“SELINUX”的值“disabled”,执行:wq保存并退出修改,然后reboot重启。

检查防火墙是否关闭。若防火墙状态显示为inactive (dead),直接下一步。
systemctl status firewalld
若防火墙状态显示为active (running),则表示防火墙未关闭,请关闭防火墙。
systemctl disable firewalld.service systemctl stop firewalld.service
将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=en_US.UTF-8”(也可以设置成GBK,看你习惯用啥)。
使用swapoff -a命令将交换内存关闭。
修改/etc/systemd/logind.conf的“RemoveIPC”的值“no”,前面的#也删掉。

重新加载参数并检查。
[root@pekphisprb70594 ~]# systemctl daemon-reload [root@pekphisprb70594 ~]# systemctl restart systemd-logind
执行ifconfig命令查询服务器的网卡名称。默认一般就是对的。
如下图所示,服务器IP为10.244.53.173,则该服务器的网卡名称为eth0。对于X86,官方文档MTU值推荐1500。

设置root用户远程登录
- vim打开配置文件/etc/ssh/sshd_config。
- 查看PermitRootLogin配置是否为yes,表示允许用户远程登录。
- 在Banner XXX 前面加 #,注释掉欢迎语。
- 重启sshd服务。
[root@pekphisprb70596 openGauss]# systemctl restart sshd.service
在其他服务器上执行上面的步骤。
4. 配置文件cluster_config.xml准备
从安装文档示例中,把主机名pekphisprb70593和IP 10.x.x.x替换成自己实际使用的值。保存到文件,文件名为cluster_config.xml。
下面是修改后的内容。注意编码格式,我用notepad++ 可以看到编码格式为UTF-8。新手建议Windows上修改完再上传服务器。
<?xml version="1.0" encoding="UTF-8"?> <ROOT> <!-- openGauss整体信息 --> <CLUSTER> <PARAM name="clusterName" value="opengSingle" /> <PARAM name="nodeNames" value="pekphisprb70593" /> <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" /> <PARAM name="gaussdbLogPath" value="/var/log/omm" /> <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" /> <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" /> <PARAM name="corePath" value="/opt/huawei/corefile" /> <PARAM name="backIp1s" value="10.x.x.x"/> </CLUSTER> <!-- 每台服务器上的节点部署信息 --> <DEVICELIST> <!-- node1上的节点部署信息 --> <DEVICE sn="pekphisprb70593"> <PARAM name="name" value="pekphisprb70593"/> <PARAM name="azName" value="AZ1"/> <PARAM name="azPriority" value="1"/> <!-- 如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --> <PARAM name="backIp1" value="10.x.x.x"/> <PARAM name="sshIp1" value="10.x.x.x"/> <!--dbnode--> <PARAM name="dataNum" value="1"/> <PARAM name="dataPortBase" value="15400"/> <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/> <PARAM name="dataNode1_syncNum" value="0"/> </DEVICE> </DEVICELIST> </ROOT>
5. 安装及验证
这一步基本上就是按照产品文档进行安装的了,没啥好说的。
以root用户登录待安装openGauss的任意主机,并按规划创建存放安装包的目录。
mkdir -p /opt/software/openGauss chmod 755 -R /opt/software
将安装包“openGauss-3.0.0-CentOS-64bit-all.tar.gz”和配置文件“cluster_config.xml”都放到上一步所创建的/opt/software/openGauss目录中。
解压安装包。
cd /opt/software/openGauss tar -zxvf openGauss-3.0.0-CentOS-64bit-all.tar.gz tar -zxvf openGauss-3.0.0-CentOS-64bit-om.tar.gz
进入script执行预安装命令。我采用的是交互式,所以需要在中间提示的时候输入密码。安装时长大概一两分钟。
[root@opengauss1 openGauss]# cd script/ [root@opengauss1 script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml Parsing the configuration file. Successfully parsed the configuration file. Installing the tools on the local node. Successfully installed the tools on the local node. Are you sure you want to create trust for root (yes/no)?yes Please enter password for root Password: Successfully created SSH trust for the root permission user. Setting host ip env ... ... Fixing server package owner. Setting finish flag. Successfully set finish flag. Preinstallation succeeded.
切换到omm用户,使用gs_install安装openGauss。中间根据提示输入要设置的数据库密码,大概两三分钟的样子。
[root@pekphisprb70593 script]# su - omm Last login: Wed Jul 6 09:17:01 CST 2022 [omm@pekphisprb70593 ~]$ gs_install -X /opt/software/openGauss/cluster_config.xml Parsing the configuration file. Check preinstall on every node. Successfully checked preinstall on every node. Creating the backup directory. Successfully created the backup directory. begin deploy.. Installing the cluster. ... Please enter password for database: Please repeat for database: ... Configuration is completed. Successfully started cluster. Successfully installed application. end deploy..
检查下数据库状态,state都是Normal就可以。
[omm@opengauss1 dn]$ gs_om -t status --detail
现在试一下连接。
[omm@opengauss1 om]$ gsql -d postgres -p 15400 gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:19 commit 0 last mr ) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=# CREATE DATABASE mydb WITH ENCODING 'GBK' template = template0; CREATE DATABASE openGauss=# openGauss=# \q
安装到此结束。
6. 可能遇到的问题
Python安装 make install提示zipimport.ZipImportError:can't decompress data;zlib not available。
tar -zxvf Python-3.6.15.tgz cd Python-3.6.15/ ./configure prefix=/usr/local/python3 make make install
然后这里报错了,提示zlib没有,解压不了数据。

这种一般是没有装zlib-devel。可以用yum的话执行 yum -y install zlib-devel 装一下。
只能离线装的话就按照本文离线版安装章节解决下。
PS:这里我搜了很多资料,因为没有配置yum,只能离线方式安装。开始按照zlib-xxx.tar.gz安装然后编译,结果安装python一直提示上面的错,还以为是zlib配置的不对,后来尝试了zlib-devel的其他版本也不可。遇到相同问题的人避开这个坑。
openGauss执行./preinstall时报错提示“Unable to import module: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory.”是python配置没弄好。
解决办法:
找到这个文件,写到python配置文件里。
[root@pekphisprb70593 script]# find / -name libpython3.6m.so.1.0 /usr/local/python3/lib/libpython3.6m.so.1.0 /opt/Python-3.6.15/libpython3.6m.so.1.0 [root@pekphisprb70593 script]# cd /etc/ld.so.conf.d/
在这个路径下新建python3.conf,里面写入libpython3.6m.so.1.0的上一层目录,我这里找到两条,写一条就好了,比如/usr/local/python3/lib,然后保存退出。
执行下面这个重新加载下。
[root@pekphisprb70593 ld.so.conf.d]# ldconfig
再重新执行步骤4 ./gs_preinstall那条命令就可以了。
openGauss数据库在CentOS上的安装实践的更多相关文章
- docker 在centos上的安装实践
使用yum安装docker yum -y install docker-io [root@localhost goblin]# yum -y install docker-io Loaded plug ...
- Cacti中文版在Centos上的安装
最近老有人问Cacti中文版在哪下载啊怎么安装啊,我在这里一遍给大家讲解了:Cacti中文版在Centos上的安装 1.基本安装 cacti是运作在apache+php+mysql+net-snmp工 ...
- MongoDB 3.2 在CentOS 上的安装和配置
MongoDB 3.2 在CentOS 上的安装和配置 2016-01-06 14:41:41 发布 您的评价: 0.0 收藏 0收藏 一.安装 编辑/etc/yum.re ...
- Centos上的安装openoffice+unoconv+swftools (转)
############################## # swftools的安装 # ############################## 1.安装所需的库和组件 yum ...
- centos上如何安装mysql
centos可以使用yum安装mysql 但是版本很低,且不灵活. 本文将介绍如何使用安装包安装mysql http://dev.mysql.com/downloads/mysql/ 下载mysql ...
- centos上yum安装异常处理
最近在centos上通过yum来安装程序,出下了以下问题: Loaded plugins: fastestmirror Setting up Install Process Loading mirro ...
- Docker(1)在CentOS上的安装与卸载
一. Docker的安装 CentOS7 上安装: 1. 卸载旧版本 $ sudo yum remove docker \ docker-client \ docker-client-latest ...
- CentOS上firefox安装flash
CentOS下firefox安装flash说明 CentOS下自带了firefox,但没有flash插件的,按它自己的提示安装不成功,需要手动安装,如下: 1.打开flash官网,http://lab ...
- 在centos上编译安装mariadb数据库
一.安装前提(准备数据文件.安装其他依赖的软件) 1.准备数据存放的目录 [root@localhost ~]# fdisk /dev/sdb (fdisk /dev/sdb 创建一个逻辑分区/de ...
- 转载:centos上yum安装apache+php+mysql等
1. 更新系统内核到最新. [root@linuxfei ~]#yum -y update 系统更新后,如果yum安装时提示错误信息,请执行以下命令修复. [root@linuxfei ~]#rpm ...
随机推荐
- c#中工厂模式详解
总体介绍: 工厂模式主要有三种类型:简单工厂.工厂方法和抽象工厂,该模式用于封装和管理对象的创建,是一种创建型模式. 万物皆对象,创建对象时必然需要new该对象,当需要更改对象时,需要把项目中 ...
- Acwing127周赛第三题 构造矩阵 (套路)
题目链接:构造矩阵 题目描述 我们希望构造一个 n×m 的整数矩阵. 构造出的矩阵需满足: 每一行上的所有元素之积均等于 k. 每一列上的所有元素之积均等于 k. 保证 k 为 1 或 −1. 请你计 ...
- linux系统centos7安装docker
1.Docker官网安装地址 https://docs.docker.com/engine/install/centos/#prerequisites 2.离线安装下载地址 https://downl ...
- SNN_文献阅读_Spiking neural networks, an introduction
Spiking neural networks, an introduction 脉冲神经网络的生物学背景+两种采用脉冲编码的神经元模型 概论 本文介绍了脉冲神经网络的生物学背景,并将介绍两种采用脉冲 ...
- 从混乱到优雅:基于DDD的六边形架构的代码翻新指南
前言 趁着双十一备战封板,终于又有一些时间可以梳理一下最近的心得. 最近这半年跟同事讨论比较多的是分层架构,然后就会遇到两个触及灵魂的问题,一个是如何做好分层架构,二是DDD在架构层面该如何落地. 为 ...
- 在 Ubuntu 22.04 系统上为 SSH 开启基于时间的 TOTP 认证
前言 一次性密码(英语:one-time password,简称OTP),又称动态密码或单次有效密码,是指电脑系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或一段短时间内.基于时间的 ...
- 通用串口modbus转PROFIBUS DP网关PM-160在汽车行业的应用案例
通用串口modbus转PROFIBUS DP网关PM-160在汽车行业的应用案例 摘要: PM-160 是泗博公司生产的,可以实现串口与 PROFIBUS DP 协议数据通信的网关.此案例讲述的是通过 ...
- 提升效率,打通万里牛ERP与下游用友U8财务软件的无缝对接
一.对接流程 1.1 销售/售后流程 在万里牛订单出库后,通过轻易云数据集成平台将数据推送至用友U8销售订单和销售出库单,这些单据可以进行关联操作. 当万里牛售后单完成退货入库后,通过数据集成平台将数 ...
- 如何自学 PS、PR 等软件?
学习Photoshop(PS)和Premiere Pro(PR)等软件需要一定的时间和耐心,以下是非常详细的自学指南. 第一部分:规划学习路线 1. 确定学习目标 在自学PS和PR之前,首先要明确自己 ...
- 在 Sealos 中使用区块链技术实现统一支付系统
拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台.拿链的技术去做有很多好处: 高可用,自带多区域高一致性的能力, ...