CentOS7.9 + Python3.9.2 安装 GaussDB_T_1.2.1-CENTOS7.9-X86.tar.gz

本文详细介绍了如何在CentOS7.9系统上安装Python3.9.2,并进一步部署GaussDB_T_1.2.1数据库。步骤包括环境准备、Python源码编译安装、GaussDB_T软件包解压及配置,适合DBA和Linux系统管理员参考。
摘要由CSDN通过智能技术生成
#!/bin/bash
# CentOS7.9 + Python3.9.2 安装 GaussDB_T_1.2.1-CENTOS7.9-X86.tar.gz
# # tree -L 1 /tmp/soft
# /tmp/soft
# ├── GaussDB_1.2.1_CENTOS7.9-X86.tar.gz
# └── Python-3.9.2.tgz
# └── pexpect-4.8.0.tar.gz
# └── ptyprocess-0.7.0.tar.gz
# clusterconfig1DN.xml(1主DN单机部署模式)、clusterconfig2DN.xml(1主1备部署模式)、 clusterconfig3DN.xml(1主2备单机部署模式)。

# 0、环境变量定义
clusternodenum=1
clustername=Jeff_VM
floatip=
netmask=255.255.254.0
host1=CentOS-NAT
host1ip=192.168.56.2
host2=
host2ip=
host3=
host3ip=
gatway=192.168.56.1
ntpserver=10.10.254.7
rootpw='Jeff_Test01'
# root 密码,要求两节点相同
init_Gauss_PWD='Jeff_Test01Jeff_Test01'
# 数据库初始化相关密码,含 [SYS] dbuser etcd(要求包含16-64字符,包含大写、小写、数字、特殊字符中三个以上组合,测试不能包含:'@'、'!'、'')
# The root password of all machines in the cluster must be the same,须要集群所有机器root密码一致
softdir=/tmp/soft
pythontgz=Python-3.9.2.tgz
gausstgz=GaussDB_1.2.1_CENTOS7.9-X86.tar.gz
cltgz=GaussDB_*-CLUSTER*.tar.gz
openssltgz=openssl-1.1.1t.tar.gz # 可不升级
pexpecttgz=pexpect-4.8.0.tar.gz
ptyprocesstgz=ptyprocess-0.7.0.tar.gz
# https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz
logfile=/tmp/gauss_install_$(date +"%Y%m%d_%H%M%S").log

# 1、环境准备
# 1.1 上传安装包到制定目录 $softdir   
# 文件:GaussDB_T_1.2.1-CENTOS7.9-X86.tar.gz  Python-3.9.2.tgz
# 1.2 定义功能
split1() {
   
    echo -e "\033[1;40;33m\n\n  ===================================== $(date +'%F %T') =====================================\n$1\033[0m"
}
result_err() {
   
    echo -e "\033[5;31m\n      (*@ο@*)(*@ο@*)(*@ο@*)  $1  (*@ο@*)(*@ο@*)(*@ο@*)\n     ===================================== $(date +'%F %T') =====================================\n\033[0m\n"
}
result_ok() {
   
    echo -e "\n\033[32m      (*^_^*)(*^_^*)(*^_^*)   $1   (*^_^*)(*^_^*)(*^_^*)\n     ===================================== $(date +'%F %T') =====================================\n\033[0m\n"
}
split1 "# 1、环境准备、初步校验"
export client_ip=$(ip a | grep -w inet | grep -Eiv "secondary|virbr|docker|:|127.0.0.1|192.168.1\.|10\.0\." | awk -F " +|/" '{ print $3}')
if [ $client_ip != $host1ip ] && [ -n $client_ip ];then
    result_err "# 请在节点1 -- $host1ip 运行脚本, Now is $client_ip"
    exit 1
fi

if [ $clusternodenum -lt 1 ] || [ $clusternodenum -gt 3 ] || [ -z $clusternodenum ];then
    result_err "# 请输入集群节点数量clusternodenum(1-3):您输入了 ($clusternodenum)"
    exit 1
fi

# 2、Node1 安装相关依赖
split1 "# 2、$host1 $host1ip yum 配置及安装相关依赖"
sleep 2
echo '#!/bin/bash' >/tmp/yumlist.sh
cat >>/tmp/yumlist.sh <<yumlist
export yumlist=\$(yum list 2>/dev/null | wc -l)
if [ \$yumlist -gt 2000 ]; then
    export yumusable=1
    echo "# yum avaliable on \$(hostname)"
else
    export yumusable=0
    echo "# YUM Unavailable on \$(hostname), Try to mount /dev/cdrom make it available"
    if [ -h /dev/cdrom ];then
        echo "# /dev/cdrom exist, mount it to /mnt for use"
        mount /dev/cdrom /mnt/
        if [ ! -d /etc/yum.repos.d/bak ]; then
            mkdir /etc/yum.repos.d/bak
        fi
        mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
        echo "[Local_mnt]
name=Local_mnt
baseurl=file:///mnt
enabled=1
gpgcheck=0" >/etc/yum.repos.d/Local_mnt.repo
        yum -y clean all
        yum makecache
    else
        echo "# /dev/cdrom does not exist, do nothing."
    fi
    if [ \$(yum list 2>/dev/null | wc -l) -lt 2000 ];then
        echo "# Yum is not available on \$(hostname), try Failed"
        exit 1
    fi
fi
# Install need rpms
echo "# Installing need rpms on \$(hostname) ... ..."
sleep 5
yum install -y -q lsof gcc gcc-c++ net-tools wget bzip2* expat-devel gdbm-devel sqlite-devel flex bison ncurses-devel glibc-devel patch redhat-lsb-core libnsl vim lrzsz bc make sysstat xorg-x11-xauth xorg-x11-fonts-* xorg-x11-font-utils xorg-x11-fonts-Type1 xorg-x11-apps xclock zlib* openssl* libffi* libaio* readline* python* chrony iotop xterm tree expect zip unzip ntp* telnet
yumlist
chmod 777 /tmp/yumlist.sh; sh /tmp/yumlist.sh

# 本次环境特殊,本地虚拟机配置连接内网机器,指定使用特定的IP地址
# export routeprefix=$(route -n | egrep -iv "Gateway|routing" | awk '{print $2}' | grep -v "0\.0\.0\.0" | awk -F"." '{print $1"."$2}')
export routeprefix=192.168.
export client_ip=$(ip a | grep -w inet | grep -Eiv "secondary|virbr|docker|:|127.0.0.1|192.168.1\." | awk -F " +|/" '{ print $3}' | grep $routeprefix)
if [ "$client_ip" != "$host1ip" ];then
    result_err "# 请在节点1 -- $host1ip 运行脚本, Now is $client_ip"
    exit 2
fi

# 密码特殊字符转化
rootpw=$(perl -e 'print quotemeta shift(@ARGV)' "${rootpw}")
init_Gauss_PWD=
1. 准备工作 - 下载并安装Docker - 下载CentOS官方镜像,可以在Docker Hub上搜索和下载 - 下载GaussDB T 1.2.1安装包 2. 创建Dockerfile 在本地新建一个目录,创建一个Dockerfile文件,内容如下: ``` FROM centos:latest MAINTAINER your-name <your-email> COPY GaussDB_T_V1.2.1_Linux.gz /opt RUN yum update -y && \ yum install -y wget unzip gcc make perl && \ cd /opt && \ tar -zxvf GaussDB_T_V1.2.1_Linux.gz && \ cd GaussDB_T_V1.2.1_Linux && \ ./install -s -S -D -p /opt/gaussdb -U root -G root && \ rm -rf /opt/GaussDB_T_V1.2.1_Linux* && \ yum remove -y wget unzip gcc make perl && \ yum clean all EXPOSE 5432 CMD ["/opt/gaussdb/bin/gaussdb", "-D", "/opt/gaussdb/data/cluster/dn1", "-p", "5432"] ``` - 第一行指定基础镜像为centos。 - 第二行为作者信息,可自行修改。 - 第三行将GaussDB T 1.2.1安装包复制到镜像的/opt目录下。 - 第四行更新yum并安装wget、unzip、gcc、make和perl等必要软件。 - 第五行解压GaussDB T 1.2.1安装包。 - 第六行进入解压后的目录并安装GaussDB T 1.2.1。 - 第七行删除解压后的文件。 - 第八行卸载wget、unzip、gcc、make和perl等软件并清理yum缓存。 - 第九行暴露GaussDB T的默认端口5432。 - 第十行设置Docker容器启动时的命令,启动GaussDB T。 3. 构建镜像 在终端中进入Dockerfile所在目录,执行以下命令构建镜像: ``` docker build -t gaussdb-t:v1.2.1 . ``` 其中,gaussdb-t:v1.2.1为镜像名称和版本号,.表示Dockerfile所在目录。 4. 运行容器 执行以下命令运行容器: ``` docker run -d -p 5432:5432 --name gaussdb-t gaussdb-t:v1.2.1 ``` 其中,-d表示后台运行,-p表示端口映射,--name表示容器名称,gaussdb-t:v1.2.1为镜像名称和版本号。 5. 验证 在浏览器中输入http://localhost:5432,如果出现如下界面,则表示GaussDB T 1.2.1集群已经成功安装并启动。 ![GaussDB T 1.2.1集群管理界面](https://img-blog.csdnimg.cn/2021091917522691.png)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值