[shell]脚本库(PHP,MySQL,Mariadb)

699次阅读

共计 17307 个字符,预计需要花费 44 分钟才能阅读完成。

PHP多版本编译安装脚本

#!/bin/bash
#Auto Install PHP (5.6|7.0|7.1)

. /etc/init.d/functions
clear
#Root test
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
install_log_name=install_php.log
env_file=/etc/profile.d/php.sh
install_log_path=/var/log/appinstall/
download_path=/tmp/tmpdir/
install_path=/usr/local/
src_path=/usr/local/src/
php_dir=/usr/local/php
sys_version=`rpm -q centos-release|cut -d- -f3`


clear
echo "##########################################"
echo "#                                        #"
echo "#        安装 PHP 5.6 7.0 7.1            #"
echo "#                                        #"
echo "##########################################"
echo "1: Install PHP-5.6"
echo "2: Install PHP-7.0"
echo "3  Install PHP-7.1"
echo "4: EXIT"
# 选择安装软件版本
read -p "Please input your choice:" softversion

# 传入内容,格式化内容输出,可以传入多个参数,用空格隔开
ok_msg() {
    for msg in $*;do
        action $msg /bin/true
    done
}
error_msg() {
    for msg in $*;do
        action $msg /bin/false
    done
}
base_yum_install() {
	echo '----------------------------环境安装-------------------------------'
	for package in $*;do
		yum install -y ${package} &> /dev/null
		ok_msg "安装软件包:${package}"
	done
	if [ $? -eq 0 ];then
	        echo "`date +%F' '%H:%M:%S` Install completed">>${install_log_path}${install_log_name} && return 0
	else
		echo "`date +%F' '%H:%M:%S` Install fail!">>${install_log_path}${install_log_name} && return 1
	fi
}
# 判断命令是否存在,第一个参数 $1 为判断的命令,第二个参数为提供该命令的yum 软件包名称
check_yum_command() {
    ok_msg "命令检查:$1"
    hash $1 &> /dev/null
    if [ $? -eq 0 ];then
        echo "`date +%F' '%H:%M:%S` check command $1 ">>${install_log_path}${install_log_name} && return 0
    else
        yum -y install $2 >/dev/null 2>&1
    fi
}

# 判断目录是否存在,传入目录绝对路径,可以传入多个目录
check_dir() {
    echo '----------------------------目录检测-------------------------------'
    for dirname in $*;do
        [ -d ${dirname} ] || mkdir -p $dirname &> /dev/null
    	ok_msg "目录检查:${dirname}"
    done
    echo "`date +%F' '%H:%M:%S` 目录检查 check success!" >> ${install_log_path}${install_log_name}
}

# 下载文件并解压至安装目录,传入url链接地址
download_file() {
    ok_msg "下载源码包:$2"
    mkdir -p $download_path 
    wget $1 -c -P $download_path &> /dev/null
    if [ $? -eq 0 ];then
       echo "`date +%F' '%H:%M:%S` $2 download success!">>${install_log_path}${install_log_name}
    else
       echo "`date +%F' '%H:%M:%s` $2 download fail!">>${install_log_path}${install_log_name} && exit 1
    fi
}

# 解压文件,可以传入多个压缩文件绝对路径,用空格隔开,解压至安装目录
extract_file() {
   ok_msg "解压源码包:$2"
   cd ${download_path}
   for file in $1;do
       if [ "${file##*.}" == "gz" ];then
           tar -zxf $file -C ${src_path} && echo "`date +%F' '%H:%M:%S` $file extrac success!,path is $src_path">>${install_log_path}${install_log_name}
       elif [ "${file##*.}" == "zip" ];then
           unzip -q $file -d ${src_path} && echo "`date +%F' '%H:%M:%S` $file extrac success!,path is $src_path">>${install_log_path}${install_log_name}
       else
           echo "`date +%F' '%H:%M:%S` $file type error, extrac fail!">>${install_log_path}${install_log_name} && exit 1
       fi
    done
}

# 配置环境变量,第一个参数为添加环境变量的绝对路径
config_env() {
    ok_msg "环境变量配置"
    echo "export PATH=\$PATH:$1" >${env_file}
    source ${env_file} && echo "`date +%F' '%H:%M:%S` 软件安装完成!">> ${install_log_path}${install_log_name}

}
# 编译PHP函数
compile_php() {
	echo '------------------------------安装PHP-----------------------------'
	cd ${src_path}${php_name}
	./configure --prefix=${php_dir}  --exec-prefix=${php_dir}  --bindir=${php_dir}/bin --sbindir=${php_dir}/sbin --includedir=${php_dir}/include --libdir=${php_dir}/lib/php --mandir=${php_dir}/php/man  --with-config-file-path=${php_dir}/etc --with-mhash --with-openssl  --with-mysqli --with-pdo-mysql --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization  --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --without-gdbm --disable-fileinfo &> /dev/null
	
	if [ $? -eq 0 ];then
        ok_msg "编译PHP"
        echo "`date +%F' '%H:%M:%S` 编译成功!">> ${install_log_path}${install_log_name}
	else
        error_msg "编译PHP"
        echo "`date +%F' '%H:%M:%S` 编译失败!">> ${install_log_path}${install_log_name}
        exit 1
	fi
	make &> /dev/null
	make install &> /dev/null
	if [ $? -eq 0 ];then
        ok_msg "安装PHP"
        echo "`date +%F' '%H:%M:%S` 编译成功!">> ${install_log_path}${install_log_name}
	else
        error_msg "安装PHP"
        echo "`date +%F' '%H:%M:%S` 编译失败!">> ${install_log_path}${install_log_name}
        exit 1
	fi
	/bin/cp php.ini-production ${php_dir}/etc/php.ini
	ok_msg "安装PHP-FPM"
	[ ! -f /etc/init.d/php-fpm ] && wget -O /etc/init.d/php-fpm https://anchnet-script.oss-cn-shanghai.aliyuncs.com/php/php-fpm &> /dev/null
	chmod a+x /etc/init.d/php-fpm
	id www &> /dev/null
	USER=`echo $?`
	if [ $USER -eq 1 ];then
	    useradd -s /sbin/nologin -M  www
	fi
	rm -fr /etc/php.ini
	ln -s ${phpdir}/etc/php.ini /etc/php.ini
	cd ${php_dir}/etc && /bin/cp php-fpm.conf.default php-fpm.conf
	[ -d ${php_dir}/etc/php-fpm.d ] && cd php-fpm.d && /bin/cp www.conf.default www.conf
	if [ ${sys_version} == "7" ];then
		chkconfig --add php-fpm
		systemctl start php-fpm
	elif [ ${sys_version} == "6" ];then
		/etc/init.d/php-fpm start &> /dev/null
	fi
	netstat -tunlp | grep php-fpm &> /dev/null
	[ $? -eq 0 ] && ok_msg "启动服务" || error_msg "启动服务"
	echo "`date +%F' '%H:%M:%S` PHP安装完成!">> ${install_log_path}${install_log_name}
}	

main() {
	check_dir $src_path $install_log_path $install_path $download_path $php_dir
	check_yum_command wget wget
	check_yum_command unzip unzip
	base_yum_install make cmake gcc gcc-c++  flex bison file libtool libtool-libs autoconf libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel  zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel  openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof curl-devel
	download_file $URL PHP
	for filename in `ls $download_path`;do
	    extract_file ${download_path}$filename ${filename}
	done
	php_name=`ls ${src_path} | grep php`
	compile_php
	rm -fr ${download_path}
	config_env ${php_dir}/bin

}


case ${softversion} in 
		1)
			URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/php/php-5.6.31.tar.gz"
			main
		;;
		2)
			URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/php/php-7.0.22.tar.gz"
			main
		;;
		3)
			URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/php/php-7.1.8.tar.gz"
			main
		;;
		4)
			exit 0
		;;
		*)
			echo "input Error! Place input{1|2|3|4}"
			exit 1
esac

MySQL多版本编译安装脚本

#!/bin/bash
# CentOS 6|7 已测试
# Time: 2018-8-10
# install_mysql
# CentOS 6已适配,7服务启动脚本未适配
. /etc/init.d/functions
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
install_log_name=install_mysql.log
env_file=/etc/profile.d/mysql.sh
install_log_path=/var/log/appinstall/
download_path=/tmp/tmpdir/
install_path=/usr/local/
src_path=/usr/local/src/
mysql_dir=/usr/local/mysql
mysql_data=/usr/local/mysql/data
sys_version=`rpm -q centos-release|cut -d- -f3`


clear
echo "##########################################"
echo "#                                        #"
echo "#        安装 MySQL 5.5 5.6 5.7          #"
echo "#                                        #"
echo "##########################################"
echo "1: Install MySQL-5.5"
echo "2: Install MySQL-5.6"
echo "3: Install MySQL-5.7"
echo "4: EXIT"
# 选择安装软件版本
read -p "Please input your choice:" softversion

# 传入内容,格式化内容输出,可以传入多个参数,用空格隔开
ok_msg() {
    for msg in $*;do
        action $msg /bin/true
    done
}
error_msg() {
    for msg in $*;do
        action $msg /bin/false
    done
}
base_yum_install() {
	echo '----------------------------环境安装-------------------------------'
	for package in $*;do
		yum install -y ${package} &> /dev/null
		ok_msg "安装软件包:${package}"
	done
	if [ $? -eq 0 ];then
	        echo "`date +%F' '%H:%M:%S` 环境安装完成">>${install_log_path}${install_log_name} && return 0
	else
		echo "`date +%F' '%H:%M:%S` 环境安装失败">>${install_log_path}${install_log_name} && return 1
	fi
}
# 判断命令是否存在,第一个参数 $1 为判断的命令,第二个参数为提供该命令的yum 软件包名称
check_yum_command() {
    ok_msg "命令检查:$1"
    hash $1 &> /dev/null
    if [ $? -eq 0 ];then
        echo "`date +%F' '%H:%M:%S` check command $1 ">>${install_log_path}${install_log_name} && return 0
    else
        yum -y install $2 >/dev/null 2>&1
    fi
}

# 判断目录是否存在,传入目录绝对路径,可以传入多个目录
check_dir() {
    echo '----------------------------目录检测-------------------------------'
    for dirname in $*;do
        [ -d ${dirname} ] || mkdir -p $dirname &> /dev/null
    	ok_msg "目录检查:${dirname}"
    done
    echo "`date +%F' '%H:%M:%S` 目录检查完成" >> ${install_log_path}${install_log_name}
}

# 下载文件并解压至安装目录,传入url链接地址
download_file() {
    ok_msg "下载源码包:$2"
    mkdir -p $download_path 
    wget $1 -c -P $download_path &> /dev/null
    if [ $? -eq 0 ];then
       echo "`date +%F' '%H:%M:%S` $2 下载完成">>${install_log_path}${install_log_name}
    else
       echo "`date +%F' '%H:%M:%s` $2 下载失败">>${install_log_path}${install_log_name} && exit 1
    fi
}

# 解压文件,可以传入多个压缩文件绝对路径,用空格隔开,解压至安装目录
extract_file() {
   ok_msg "解压源码包:$2"
   cd ${download_path}
   for file in $1;do
       if [ "${file##*.}" == "gz" ];then
           tar -zxf $file -C ${src_path} && echo "`date +%F' '%H:%M:%S` $file 解压完成">>${install_log_path}${install_log_name}
       elif [ "${file##*.}" == "zip" ];then
           unzip -q $file -d ${src_path} && echo "`date +%F' '%H:%M:%S` $file 解压失败">>${install_log_path}${install_log_name}
       else
           echo "`date +%F' '%H:%M:%S` $file type error, extrac fail!">>${install_log_path}${install_log_name} && exit 1
       fi
    done
}

# 配置环境变量,第一个参数为添加环境变量的绝对路径
config_env() {
    ok_msg "环境变量配置"
    echo "export PATH=\$PATH:$1" >${env_file}
    source ${env_file} && echo "`date +%F' '%H:%M:%S` 软件安装完成!">> ${install_log_path}${install_log_name}

}

# 编译MySQL函数
compile_mysql() {
	echo '----------------------------安装MySQL------------------------------'
	cd ${src_path}${mysql_name}
	id mysql &> /dev/null
	USER=`echo $?`
	if [ $USER -eq 1 ];then
		groupadd mysql
	    useradd -g mysql mysql -s /bin/false
		chown -R mysql:mysql /usr/local/mysql/data
	fi
	echo "`date +%F' '%H:%M:%S` 用户添加完成!">> ${install_log_path}${install_log_name}
	ok_msg "MySQL用户"
	if [ ${softversion} == "1" ];then
		cmake . -DCMAKE_INSTALL_PREFIX=${mysql_dir} -DMYSQL_DATADIR=${mysql_data} -DSYSCONFDIR=/etc &> /dev/null
		STATUS=$?
		[ $? -eq 0 ] && ok_msg "Cmake完成" || error_msg "Cmake完成"
	elif [ ${softversion} == "2" ];then
		cmake . -DCMAKE_INSTALL_PREFIX=${mysql_dir} -DMYSQL_DATADIR=${mysql_data} -DSYSCONFDIR=/etc &> /dev/null
		STATUS=$?
		[ $? -eq 0 ] && ok_msg "Cmake完成" || error_msg "Cmake完成"
	elif [ ${softversion} == "3" ];then
		boost_url="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mysql/boost_1_59_0.tar.gz"
		download_file ${boost_url} boost
		tar -zxf /tmp/tmpdir/boost_1_59_0.tar.gz -C /usr/local/
		cmake . -DCMAKE_INSTALL_PREFIX=${mysql_dir} -DMYSQL_DATADIR=${mysql_data} -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost_1_59_0 &> /dev/null
		STATUS=$?
		[ $? -eq 0 ] && ok_msg "Cmake完成" || error_msg "Cmake完成"
	fi
	if [ ${STATUS} -eq 0 ];then
        echo "`date +%F' '%H:%M:%S` Cmake成功!">> ${install_log_path}${install_log_name}
	else
        error_msg "编译MySQL"
        echo "`date +%F' '%H:%M:%S` Cmake失败!">> ${install_log_path}${install_log_name} && exit 1
        exit 1
	fi
	make
	make install &> /dev/null
	mv /etc/my.cnf /etc/my.cnf.bak
	if [ ${softversion} == "1" ];then
		/bin/cp ${mysql_dir}/support-files/my-medium.cnf /etc/my.cnf
	elif [ ${softversion} == "2" ];then
		/bin/cp ${mysql_dir}/support-files/my-default.cnf /etc/my.cnf
	elif [ ${softversion} == "3" ];then
		wget -O /etc/my.cnf https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mysql/my-medium.cnf &> /dev/null
	fi
	if [ ${softversion} == "3" ];then
		continue
	else
		echo "datadir = ${mysql_data}" >> /etc/my.cnf
		echo "basedir = ${mysql_dir}" >> /etc/my.cnf
	fi
	if [ ${softversion} == "3" ];then
		${mysql_dir}/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &> /dev/null
		[ $? -eq 0 ] && ok_msg "DB初始化" || error_msg "DB初始化" && exit 1
	else
		chmod +x ./scripts/mysql_install_db
		./scripts/mysql_install_db --user=mysql --basedir=${mysql_dir} --datadir=/usr/local/mysql/data &> /dev/null
		[ $? -eq 0 ] && ok_msg "DB初始化" || error_msg "DB初始化" && exit 1
	fi
	echo "`date +%F' '%H:%M:%S` MySQL db初始化安装完成!">> ${install_log_path}${install_log_name}
	cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
	chmod 755 /etc/init.d/mysqld
	if [ ${sys_version} == "7" ];then
		chkconfig --add mysqld
		systemctl start mysqld
	elif [ ${sys_version} == "6" ];then
		/etc/init.d/mysqld start &> /dev/null
	fi
	ok_msg "安装MySQL"
	echo "`date +%F' '%H:%M:%S` MySQL安装完成!">> ${install_log_path}${install_log_name}
	netstat -tunlp | grep mysql &> /dev/null
	[ $? -eq 0 ] && ok_msg "启动MySQL" || error_msg "启动MySQL"
}

#主函数
main() {
	check_dir $src_path $install_log_path $install_path $download_path $mysql_dir $mysql_data
	check_yum_command wget wget
	check_yum_command unzip unzip
	base_yum_install install make gcc-c++ cmake bison-devel  ncurses-devel vimbison libgcrypt perl
	download_file $URL MySQL
	for filename in `ls $download_path`;do
	    extract_file ${download_path}$filename ${filename}
	done
	mysql_name=`ls ${src_path} | grep mysql`
	compile_mysql
	rm -fr ${download_path}
	config_env ${apache_dir}/bin
}

case ${softversion} in
	1)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mysql/mysql-5.5.57.tar.gz"
		main
	;;
	2)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mysql/mysql-5.6.37.tar.gz"
		main
	;;
	3)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mysql/mysql-5.7.19.tar.gz"
		main
	;;
	4)
		exit 0
	;;
	*)
		echo "input Error! Place input{1|2|3|4}"
		exit 1
esac

Mariadb多版本编译安装脚本

#!/bin/bash
# CentOS 6|7 已测试
# Time: 2018-8-10
# install_mariadb
. /etc/init.d/functions
[ $(id -u) != "0" ] && echo "Error: You must be root to run this script" && exit 1
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
install_log_name=install_mariadb.log
env_file=/etc/profile.d/mariadb.sh
install_log_path=/var/log/appinstall/
download_path=/tmp/tmpdir/
install_path=/usr/local/
src_path=/usr/local/src/
mariadb_dir=/usr/local/mysql
mariadb_data=/usr/local/mysql/data
sys_version=`rpm -q centos-release|cut -d- -f3`


clear
echo "##########################################"
echo "#                                        #"
echo "#   安装 mariadb 5.5 10.1 10.2 10.3      #"
echo "#                                        #"
echo "##########################################"
echo "1: Install Mariadb-5.5"
echo "2: Install Mariadb-10.1"
echo "3: Install Mariadb-10.2"
echo "4: Install Mariadb-10.3"
echo "5: EXIT"
# 选择安装软件版本
read -p "Please input your choice:" softversion

# 传入内容,格式化内容输出,可以传入多个参数,用空格隔开
ok_msg() {
    for msg in $*;do
        action $msg /bin/true
    done
}
error_msg() {
    for msg in $*;do
        action $msg /bin/false
    done
}
base_yum_install() {
	echo '----------------------------环境安装-------------------------------'
	for package in $*;do
		yum install -y ${package} &> /dev/null
		ok_msg "安装软件包:${package}"
	done
	if [ $? -eq 0 ];then
	        echo "`date +%F' '%H:%M:%S` 环境安装完成">>${install_log_path}${install_log_name} && return 0
	else
		echo "`date +%F' '%H:%M:%S` 环境安装失败">>${install_log_path}${install_log_name} && return 1
	fi
}
# 判断命令是否存在,第一个参数 $1 为判断的命令,第二个参数为提供该命令的yum 软件包名称
check_yum_command() {
    ok_msg "命令检查:$1"
    hash $1 &> /dev/null
    if [ $? -eq 0 ];then
        echo "`date +%F' '%H:%M:%S` check command $1 ">>${install_log_path}${install_log_name} && return 0
    else
        yum -y install $2 >/dev/null 2>&1
    fi
}

# 判断目录是否存在,传入目录绝对路径,可以传入多个目录
check_dir() {
    echo '----------------------------目录检测-------------------------------'
    for dirname in $*;do
        [ -d ${dirname} ] || mkdir -p $dirname &> /dev/null
    	ok_msg "目录检查:${dirname}"
    done
    echo "`date +%F' '%H:%M:%S` 目录检查完成" >> ${install_log_path}${install_log_name}
}

# 下载文件并解压至安装目录,传入url链接地址
download_file() {
    ok_msg "下载源码包:$2"
    mkdir -p $download_path 
    wget $1 -c -P $download_path &> /dev/null
    if [ $? -eq 0 ];then
       echo "`date +%F' '%H:%M:%S` $2 下载完成">>${install_log_path}${install_log_name}
    else
       echo "`date +%F' '%H:%M:%s` $2 下载失败">>${install_log_path}${install_log_name} && exit 1
    fi
}

# 解压文件,可以传入多个压缩文件绝对路径,用空格隔开,解压至安装目录
extract_file() {
   ok_msg "解压源码包:$2"
   cd ${download_path}
   for file in $1;do
       if [ "${file##*.}" == "gz" ];then
           tar -zxf $file -C ${src_path} && echo "`date +%F' '%H:%M:%S` $file 解压完成">>${install_log_path}${install_log_name}
       elif [ "${file##*.}" == "zip" ];then
           unzip -q $file -d ${src_path} && echo "`date +%F' '%H:%M:%S` $file 解压失败">>${install_log_path}${install_log_name}
       else
           echo "`date +%F' '%H:%M:%S` $file type error, extrac fail!">>${install_log_path}${install_log_name} && exit 1
       fi
    done
}

# 配置环境变量,第一个参数为添加环境变量的绝对路径
config_env() {
    ok_msg "环境变量配置"
    echo "export PATH=\$PATH:$1" >${env_file}
    source ${env_file} && echo "`date +%F' '%H:%M:%S` 软件安装完成!">> ${install_log_path}${install_log_name}

}

# 编译mariadb函数
compile_mariadb() {
	echo '----------------------------安装MySQL------------------------------'
	cd ${src_path}${mariadb_name}
	id mysql &> /dev/null
	USER=`echo $?`
	if [ $USER -eq 1 ];then
		groupadd mysql
	    useradd -g mysql mysql -s /bin/false
		chown -R mysql:mysql /usr/local/mysql/data
	fi
	echo "`date +%F' '%H:%M:%S` 用户添加完成!">> ${install_log_path}${install_log_name}
	ok_msg "Mariadb用户"
	cmake . -DCMAKE_INSTALL_PREFIX=${mariadb_dir} -DMYSQL_DATADIR=${mariadb_data} -DSYSCONFDIR=/etc -DWITHOUT_TOKUDB=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci &> /dev/null
	if [ $? -eq 0 ];then
		ok_msg "Cmake完成"
		echo "`date +%F' '%H:%M:%S` Cmake成功!">> ${install_log_path}${install_log_name}
	else	
		error_msg "Cmake完成"
		echo "`date +%F' '%H:%M:%S` Cmake失败!">> ${install_log_path}${install_log_name}
		exit 1
	fi
	make
	make install &> /dev/null
	[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak
	/bin/cp ${mariadb_dir}/support-files/my-medium.cnf /etc/my.cnf
	chmod +x ./scripts/mysql_install_db
	./scripts/mysql_install_db --user=mysql --basedir=${mariadb_dir} --datadir=${mariadb_data} &> /dev/null
	[ $? -eq 0 ] && ok_msg "DB初始化" || error_msg "DB初始化"
	echo "`date +%F' '%H:%M:%S` Mariadb db初始化安装完成!">> ${install_log_path}${install_log_name}
	cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
	chmod 755 /etc/init.d/mysqld
	if [ ${sys_version} == "7" ];then
		chkconfig --add mysqld
		systemctl start mysqld
	elif [ ${sys_version} == "6" ];then
		/etc/init.d/mysqld start &> /dev/null
	fi
	ok_msg "安装Mariadb"
	echo "`date +%F' '%H:%M:%S` Mariadb安装完成!">> ${install_log_path}${install_log_name}
	netstat -tunlp | grep mysql &> /dev/null
	[ $? -eq 0 ] && ok_msg "启动Mariadb" || error_msg "启动Mariadb"
	echo "`date +%F' '%H:%M:%S` Mariadb启动成功!">> ${install_log_path}${install_log_name}
}

#主函数
main() {
	check_dir $src_path $install_log_path $install_path $download_path $mariadb_dir $mariadb_data
	check_yum_command wget wget
	check_yum_command unzip unzip
	base_yum_install install make gcc-c++ cmake bison-devel ncurses-devel vimbison libgcrypt perl libaio-devel Judy Judy-devel openssl-devel libevent-devel
	download_file $URL Mariadb
	for filename in `ls $download_path`;do
	    extract_file ${download_path}$filename ${filename}
	done
	mariadb_name=`ls ${src_path} | grep mariadb`
	compile_mariadb
	rm -fr ${download_path}
	config_env ${mariadb_dir}/bin
}

case ${softversion} in
	1)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mariadb/mariadb-5.5.61.tar.gz"
		main
	;;
	2)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mariadb/mariadb-10.1.35.tar.gz"
		main
	;;
	3)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mariadb/mariadb-10.2.17.tar.gz"
		main
	;;
	4)
		URL="https://anchnet-script.oss-cn-shanghai.aliyuncs.com/mariadb/mariadb-10.3.9.tar.gz"
		main
	;;
	5)
		exit 0
	;;
	*)
		echo "input Error! Place input{1|2|3|4}"
		exit 1
esac

 

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2018-08-20发表,共计17307字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索