【基于华为云ECS及openEuler 20.03 TLS编译openGauss2.1.0源码】

本文详细介绍了如何在华为云ECS的openEuler20.03TLSARM环境中,从源码编译安装openGauss2.1.0数据库系统,包括环境准备、安装Python3、libaio,创建用户,下载和编译源码,安装依赖,配置环境变量,初始化数据库和启动数据库的过程。
摘要由CSDN通过智能技术生成

基于华为云ECS及openEuler 20.03 TLS编译openGauss2.1.0源码

一、安装环境

项目Value
操作系统openEuler 20.03 64bit with ARM
openGauss2.1.0
openGauss-third_party2.1.0

二、安装前准备

项目Value
购买华为ECS鲲鹏 8vCPU32G 100M/s带宽 openEuler 20.03 64bit with ARM

二、安装步骤

以下操作需要在root用户下执行

  1. 设置字符集参数

    cat >>/etc/profile<<EOF
    export LANG=en_US.UTF-8
    EOF
    

    输入如下命令,使修改生效。

    source /etc/profile
    
  2. 修改python版本并安装libaio包
    之前安装过程中openGauss用户互信,openEuler服务器需要用到Python-3.7.x命令,但是默认Python版本为Python-2.7.x,所以需要切换Python版本。

    cd /usr/bin
    mv /usr/bin/python /usr/bin/python.bak
    ln -s python3 /usr/bin/python
    python -V
    yum install libaio* -y
    
  3. 创建openGauss数据库的安装用户omm及其属组dbgrp

    groupadd -g 1000 dbgrp
    useradd -g dbgrp -u 1000 -d /home/omm omm
    

    修改omm用户密码:

    passwd omm
    #回车,输入用户密码
    
  4. 创建openGauss源码存放及openGauss安装路径

    mkdir -p /opt/software/openGauss/data
    chown omm:dbgrp -R /opt/software
    chmod 755 -R /opt/software
    
  5. 安装git和git-lfs

    sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/openEuler.repo
    yum clean all
    yum makecache
    yum update --allowerasing --skip-broken --nobest -y
    

    最后执行安装git的命令,如下:

    yum install git -y
    

    再安装git-lfs
    下载git-lfs-linux-arm64-v3.3.0.tar.gz包,下载地址:git-lfs-linux-arm64-v3.3.0.tar.gz
    将下载的git-lfs-linux-arm64-v3.3.0.tar.gz上传到服务器上或者直接在服务器上使用wget命令下载,如:

    cd /root
    wget https://github.com/git-lfs/git-lfs/releases/download/v3.3.0/git-lfs-linux-arm64-v3.3.0.tar.gz
    

    解压,执行:

    tar -zvxf git-lfs-linux-arm64-v3.3.0.tar.gz
    

    进入到解压之后的目录git-lfs-3.3.0下,执行如下命令:

    ./install.sh 
    #或者
    ./git-lfs install
    

    看到如下信息说明安装成功了:
    在这里插入图片描述

  6. 下载openGauss源码和openGauss-third_party_binarylibs第三方库,进入到/opt/software目录下 ,下载openGauss2.1.0 源码和下载openGauss-third_party_binarylibs-2.1.0,由于开源软件编译构建耗时长,我们特地使用openGauss-third_party编译构建出了一份binarylibs并压缩上传到了网上,用户可以直接下载获取。下载比较慢,请稍等几分钟

    cd /opt/software
    git clone https://gitee.com/opengauss/openGauss-server.git openGauss-server -b 2.1.0
    wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.1.0/openGauss-third_party_binarylibs.tar.gz
    

    下载完毕后请解压,重命名文件夹为 binarylibs

    tar -zvxf openGauss-third_party_binarylibs.tar.gz
    mv openGauss-third_party_binarylibs binarylibs
    

    至此,/opt/software 目录下已经有了openGauss和第三方库,如下所示:

    ls -l
    # 结果如下
    drwxr-xr-x  7 root root 4.0K Mar 20  2022 binarylibs
    drwxr-xr-x 10 root root 4.0K Jun  5 19:52 openGauss
    drwxr-xr-x 12 root root 4.0K Jun  5 19:52 openGauss-server
    -rwxr-xr-x  1 root root 2.6G Mar 20  2022 openGauss-third_party_binarylibs.tar.gz
    
  7. 安装编译openGauss-server所需要的第三方依赖库,具体如下所示:

    yum install -y libaio-devel ncurses-devel pam-devel libffi-devel libtool libtool-devel libtool-ltdl openssl-devel bison golang dkms-2.6.1-5.oe1.noarch python3-devel patch autoconf readline-devel gcc-c++ libstdc++-devel automake texinfo indent byacc cmake diffutils help2man gettext-devel
    

    具体可以参考:版本编译

  8. 手动安装flex
    下载flex-2.5.39.tar.bz2安装包:

    cd /root
    wget -O flex-2.5.39.tar.bz2 "https://github.com/westes/flex/releases/download/flex-2.5.39/flex-2.5.39.tar.bz2"
    

    解压安装包:

    tar -xvf flex-2.5.39.tar.bz2
    

    进入flex-2.5.39目录下,执行:

    cd /root/flex-2.5.39/
    ./autogen.sh
    ./configure
    make
    make install
    

    然后,将flex-2.5.39目录下的flex脚本复制到/usr/bin目录下,执行:

    cp /root/flex-2.5.39/flex /usr/bin/flex
    

    最后,执行flex命令查看版本号:

    flex --version
    

    版本信息如下:

    flex 2.5.39

  9. 手动安装lsb_release
    下载openeuler-lsb-5.0-1.oe2203.src.rpm包并上传到/root目录下
    执行:rpm -ihv openeuler-lsb-5.0-1.oe2203.src.rpm,该命令执行完成后,会在当前目录下生成rpmbuild目录,执行:/root/rpmbuild/SOURCES,进入rpmbuild目录会看到openeuler-lsb-5.0.tar.bz2,将其解压缩,执行:tar -xvf openeuler-lsb-5.0.tar.bz2,进入解压后的目录openeuler-lsb-5.0,将其中的lsb_release复制到/usr/bin目录下,具体命令如下:

    rpm -ihv openeuler-lsb-5.0-1.oe2203.src.rpm
    cd /root/rpmbuild/SOURCES
    tar -xvf openeuler-lsb-5.0.tar.bz2
    cd openeuler-lsb-5.0
    cp lsb_release /usr/bin/lsb_release
    

    验证lsb_release是否已经安装成功,执行:

    [root@sjmopengauss02 ~]# lsb_release -a
    LSB Version:    n/a
    Distributor ID: openEuler
    Description:    openEuler release 20.03 (LTS)
    Release:        20.03
    Codename:       LTS
    [root@sjmopengauss02 ~]#
    
  10. 修改openGauss源代码所在目录及其子目录的用户及其用户组以及权限,执行:

    chown omm:dbgrp -R /opt
    chmod 755 -R /opt
    

以下是在omm用户下操作

  1. 以omm用户登录ECS】配置环境变量,编辑~/.bashrc文件,在该文件末尾添加如下所示内容:

    export CODE_BASE=/opt/software/openGauss-server     # openGauss-server源码的路径
    export BINARYLIBS=/opt/software/binarylibs    # binarylibs的路径
    export GAUSSHOME=/opt/software/openGauss/     # openGauss安装路径,可修改成你自己的
    export GCC_PATH=$BINARYLIBS/buildtools/openeuler_aarch64/gcc7.3/
    export CC=$GCC_PATH/gcc/bin/gcc
    export CXX=$GCC_PATH/gcc/bin/g++
    export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib/:$GCC_PATH/mpfr/lib/:$GCC_PATH/gmp/lib/:$LD_LIBRARY_PATH
    export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH
    

    环境变量生效,执行:source ~/.bashrc

  2. 配置openGauss源码】进入/opt/software/openGauss-server目录下,选择版本进行configure。我们这里选择debuge版本,执行如下代码:

    ./configure --gcc-version=7.3.0 --enable-mot CC=g++ CFLAGS='-O0 -D__USE_NUMA -D__ARM_LSE' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib
    
  3. 编译并安装openGauss】当前一步骤执行成功后,在/opt/software/openGauss-server目录下执行:

    make -j8
    

    编译成功的结果如下图所示:
    在这里插入图片描述
    安装openGauss

    make install -j8
    

    安装成功结果如下信息提示:

    make[1]: Leaving directory '/opt/software/openGauss-server/contrib/hstore'
    openGauss installation complete.
    
    1. 初始化openGauss数据库】当安装openGauss成功后,需对其进行数据初始化, 在初始化数据库时,需要设置数据库密码,并且要使用复杂密码,如下命令。gs_initdb -D $PGDATA --nodename=hostname --locale="en_US.UTF-8" -Atrust -w {password},具体可参考如下命令:其中–nodename后面的hostname需要修改成你自己ecs的主机名称
    gs_initdb -D /opt/software/openGauss/data --nodename=hostname --locale="en_US.UTF-8" -Atrust -w 'openGauss@1234'
    

    初始化成功截图如下所示:
    在这里插入图片描述

  4. 启动数据库

    gs_ctl start -D /opt/software/openGauss/data -Z single_node -l logfile 
    

    成功启动结果如下图所示:
    在这里插入图片描述

  5. 登录数据库

    gsql -d postgres -p 5432 -r
    

    成功登录截图:
    在这里插入图片描述

  6. 创建数据库db01,执行:create database db01;
    在这里插入图片描述

  7. 退出数据库,执行:\q

至此已经完成了基于openEuler20.03TLS编译openGauss-2.1.0的全部工作。如本文对您有所帮助,麻烦动动您发财的手指点个赞或者转发,感谢支持~~~~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若兰幽竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值