#!/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=
CentOS7.9 + Python3.9.2 安装 GaussDB_T_1.2.1-CENTOS7.9-X86.tar.gz
于 2023-06-01 10:30:23 首次发布
本文详细介绍了如何在CentOS7.9系统上安装Python3.9.2,并进一步部署GaussDB_T_1.2.1数据库。步骤包括环境准备、Python源码编译安装、GaussDB_T软件包解压及配置,适合DBA和Linux系统管理员参考。
摘要由CSDN通过智能技术生成