#定义一个函数,在centos下删除这些package
function alisql_uninstall(){
yum remove -y mariadb*
yum remove -y mysql*
yum remove -y percona*
yum remove -y AliSQL*
}
function alisql_install(){
#安装package
yum install -y AliSQL-server
#安装成的话,调用函数lava-test-case 表示安装成功
if [ $? -eq 0 ];then
lava-test-case "AliSQL-server install" --result pass
else
#安装失败,则删除对应的package
alisql_uninstall
yum install -y AliSQL-server
if [ $? -ne 0 ];then
lava-test-case "AliSQL-server install" --result fail
exit 1
fi
fi
export LANG=en_US.UTF8
#查询这个包的信息保存到tmp.info 中
yum info AliSQL-server > tmp.info
#grep 执行的结果中裁剪出version信息和repo信息
local version=`grep Version tmp.info | cut -d : -f 2`
local repo=`grep "From repo" tmp.info | cut -d : -f 2`
#检查版本和repo是否等于测定的字符串
if [ $version = "5.6.32" -a $repo = "Estuary" ];then
true
else
false
fi
print_info $? "alisql version is right"
}
function alisql_start_custom(){
#第一个形参为零的话,给port赋值3306.否则赋值为第一个形参
if [ -z $1 ];then
port=3306
else
port=$1
fi
local base="/mysql/$port"
#删除这个命令
rm -rf ${base}
#新建目录
mkdir -p ${base}/{data,run,log}
cp -f ./my.cnf $base
#将my.cnf 中的port地换成3306
sed -i s"/3306/$port/" ${base}/my.cnf
#新建两个文件
touch ${base}/run/mysqld.pid
touch ${base}/log/mysqld.log
#改变权限
chown -R mysql:mysql ${base}
#建立软连接
ln -s ${base}/my.cnf ~/.my.cnf
#执行命令
mysql_install_db --defaults-file=${base}/my.cnf --user=mysql --force
#判断命令执行的结果
if [ $? -ne 0 ];then
echo "alisql initilized failed"
exit 1
fi
#后台执行命令
mysqld_safe --defaults-file=${base}/my.cnf --user=mysql &
#保存上一个命令执行的pid
local pid=$!
#睡眠3s
sleep 3
#查询pid是否存在
ps -ef | grep $pid
if [ $? -ne 0 ];then
echo "alisql can't start success"
exit 1
fi
}
function alisql_stop_custom(){
#执行命令,并通过ps -ef 查询进程名,看shutdown命令是否执行成功
mysqladmin shutdown
ps -ef | grep mysqld | grep -v grep
if [ $? -eq 0 ];then
false
else
true
fi
#打印信息
print_info $? "alisql stop server by command"
#删除文件
rm -f ~/.my.cnf
}
test-definitions/blob/master/auto-test/alisql/alisql.sh
最新推荐文章于 2024-09-24 11:46:59 发布