#全局变量
DIR_SHARE=/data/share
MYSQL_NAME=mysql-boost-5.7.25.tar.gz
FILE=$DIR_SHARE/$MYSQL_NAME
SETUP_PATH=/data/setupfiles/mysql
MYSQLD_PATH=$SETUP_PATH/bin/mysqld
FILE_CONF=$SETUP_PATH/redis.conf
#创建文件夹
if [ ! -d "$DIR_SHARE" ]; then
	mkdir -p $DIR_SHARE
fi
#下载安装文件
cd $DIR_SHARE
if [ ! -e "$FILE" ]; then
	wget -O $FILE http://software.tophorsekj.net/linux/MySql/mysql5.7/mysql-boost-5.7.25.tar.gz
fi
echo "$MYSQLD_PATH"
#判断是否已安装
if [ ! -e "$MYSQLD_PATH" ]; then
	#创建用户和用户组
	useradd mysql -M -s /sbin/nologin
	#创建安装地址
	mkdir -p $SETUP_PATH/data
	mkdir -p $SETUP_PATH/binlog
	mkdir -p $SETUP_PATH/relaylog
	mkdir -p $SETUP_PATH/mysql
	chown -R mysql $SETUP_PATH
	#安装依赖库
	yum install -y gcc gcc-c++ cmake bison ncurses-devel
	#判断rpcgen是否安装
	FILE_RPCGEN=/usr/bin/rpcgen
	if [ ! -e "$FILE_RPCGEN" ]; then
		wget -O $DIR_SHARE/rpcsvc-proto-1.4.tar.gz http://software.tophorsekj.net/linux/MySql/mysql5.7/rpcsvc-proto-1.4.tar.gz
		tar zvxf rpcsvc-proto-1.4.tar.gz
		cd  rpcsvc-proto-1.4
		./configure && make && make install
	fi
	#判断rpc.h是否存在
	FILE_RPC=/usr/include/rpc/rpc.h
	if [ ! -e "$FILE_RPC" ]; then
		wget -O $FILE_RPC http://software.tophorsekj.net/linux/shell/mysql-5.7.25/rpc.h
	fi
	#判断types.h是否存在
	FILE_TYPES=/usr/include/rpc/types.h
	if [ ! -e "$FILE_TYPES" ]; then
		wget -O $FILE_TYPES http://software.tophorsekj.net/linux/shell/mysql-5.7.25/types.h
	fi
	#判断xdr.h是否存在
	FILE_XDR=/usr/include/rpc/xdr.h
	if [ ! -e "$FILE_XDR" ]; then
		wget -O $FILE_XDR http://software.tophorsekj.net/linux/shell/mysql-5.7.25/xdr.h
	fi
	#判断auth.h是否存在
	FILE_AUTH=/usr/include/rpc/auth.h
	if [ ! -e "$FILE_AUTH" ]; then
		wget -O $FILE_AUTH http://software.tophorsekj.net/linux/shell/mysql-5.7.25/auth.h
	fi
	#判断clnt.h是否存在
	FILE_CLNT=/usr/include/rpc/clnt.h
	if [ ! -e "$FILE_CLNT" ]; then
		wget -O $FILE_CLNT http://software.tophorsekj.net/linux/shell/mysql-5.7.25/clnt.h
	fi
	#判断rpc_msg.h是否存在
	FILE_RPCMSG=/usr/include/rpc/rpc_msg.h
	if [ ! -e "$FILE_RPCMSG" ]; then
		wget -O $FILE_RPCMSG http://software.tophorsekj.net/linux/shell/mysql-5.7.25/rpc_msg.h
	fi
	#判断auth_unix.h是否存在
	FILE_AUTH_UNIX=/usr/include/rpc/auth_unix.h
	if [ ! -e "$FILE_AUTH_UNIX" ]; then
		wget -O $FILE_AUTH_UNIX http://software.tophorsekj.net/linux/shell/mysql-5.7.25/auth_unix.h
	fi
	#判断auth_des.h是否存在
	FILE_AUTH_DES=/usr/include/rpc/auth_des.h
	if [ ! -e "$FILE_AUTH_DES" ]; then
		wget -O $FILE_AUTH_DES http://software.tophorsekj.net/linux/shell/mysql-5.7.25/auth_des.h
	fi
	#判断svc.h是否存在
	FILE_SVC=/usr/include/rpc/svc.h
	if [ ! -e "$FILE_SVC" ]; then
		wget -O $FILE_SVC http://software.tophorsekj.net/linux/shell/mysql-5.7.25/svc.h
	fi
	#判断svc_auth.h是否存在
	FILE_SVC_AUTH=/usr/include/rpc/svc_auth.h
	if [ ! -e "$FILE_SVC_AUTH" ]; then
		wget -O $FILE_SVC_AUTH http://software.tophorsekj.net/linux/shell/mysql-5.7.25/svc_auth.h
	fi
	#解压缩文件
	cd $DIR_SHARE
	rm -rf mysql-5.7.25
	tar -zxvf mysql-boost-5.7.25.tar.gz 
	cd mysql-5.7.25
	#如果要安装多个实例，编译配置选项必须要修改，红色部分是数据安装路径，可以更改
	cmake . -DCMAKE_INSTALL_PREFIX=$SETUP_PATH -DMYSQL_DATADIR=$SETUP_PATH/data -DSYSCONFDIR=$SETUP_PATH -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=$SETUP_PATH/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=$DIR_SHARE/mysql-5.7.25/boost
	make && make install
	#初始化数据库
	$SETUP_PATH/bin/mysqld --initialize --user=mysql --basedir=$SETUP_PATH --datadir=$SETUP_PATH/data
	#备份默认配置文件
	mv /etc/my.cnf /etc/my.cnf.bak
	#下载my.cnf
	wget -O $SETUP_PATH/my.cnf http://software.tophorsekj.net/linux/shell/mysql-5.7.25/my.cnf
	#下载mysql.sh
	wget -O $SETUP_PATH/mysql.sh http://software.tophorsekj.net/linux/shell/mysql-5.7.25/mysql.sh
	#启动mysql
	chmod +x $SETUP_PATH/mysql.sh
	echo "--------------------服务器手动操作步骤：--------------------"
	echo "1、首先要启动MySql服务"
	echo "命令：$SETUP_PATH/mysql.sh start"
	echo "2、执行命令完成以下工作："
	echo "●修改随机生成的root密码"
	echo "●修改$SETUP_PATH/mysql.sh文件中mysql_password密码(停止MySql时需要)"
	echo "●生成管理员用户(admin+四位随机数)"
	echo "备注：随机生成密码控制没有的话，请从$SETUP_PATH/mysql_error.log中查找'A temporary password is generated for root@localhost:'即可，命令：cat /data/setupfiles/mysql/mysql_error.log"
	echo "命令(MySQL服务必须起来再执行)：wget -O /data/share/adduser.sh http://software.tophorsekj.net/linux/shell/mysql-5.7.25/adduser.sh && chmod +x /data/share/adduser.sh && /data/share/adduser.sh '旧密码' "
	#输出参考文档
	echo "3、详细参考文档：https://pms.dingmakeji.com/zentao/doc-objectLibs-custom--45-168.html"
fi
#添加自启动
FIND_FILE="/etc/rc.d/rc.local"
FIND_STR="$SETUP_PATH/mysql.sh start"
#--判断匹配函数，匹配函数不为0，则包含给定字符
if [ `grep -c "$FIND_STR" $FIND_FILE` -eq '0' ];then
	sed -i '$a#mysql\n/data/setupfiles/mysql/mysql.sh start' $FIND_FILE
fi