mysql-5.6.x和mysql-5.7.x二进制安装
#!/bin/bash#__Author__:Allen_Jol at 2018-03-21 13:52:13
#Description: install mysql-5.6.39 or mysql-5.7.21 binary for centos 6.x
CPUINFO=`cat /proc/cpuinfo | grep -cprocessor`
DIR="/usr/local/src"
MDIR="/usr/local/mysql"
DATADIR="$MDIR/data"
MYSQL56_BIN_SOURCE="mysql-5.6.39-linux-glibc2.12-x86_64"
MYSQL56_DOWN_URL="https://cdn.mysql.com//Downloads/MySQL-5.6/${MYSQL56_BIN_SOURCE}.tar.gz"
MYSQL57_BIN_SOURCE="mysql-5.7.21-linux-glibc2.12-x86_64"
MYSQL57_DOWN_URL="https://cdn.mysql.com//Downloads/MySQL-5.7/${MYSQL57_BIN_SOURCE}.tar.gz"
#cpuinfo=${grep "processor" /proc/cpuinfo | wc -l}
functioncheckroot(){
if [ $UID -ne0 ];then
echo -e "\e[1;35mPlease login as root\e[0m"
exit 1
fi
}
function create_user_mysql(){
gflag=`cat/etc/group|awk -F':''{print$1}'| grepmysql`
[[ $gflag != "" ]]&& echo -e "\e[1;35mgroup 'mysql' already exists\e[0m"|| groupadd mysql
uflag=`cat/etc/passwd|awk -F':''{print$1}'| grepmysql`
[[ $uflag != ""]] && echo -e "\e[1;35muser 'mysql' already exists\e[0m" || useradd -r mysql -g mysql -s /sbin/nologin
}
functionMsgbox(){
if [$? -ne 0 ];then
echo -e "\e[1;35mError,please check\e[0m"
exit 1
fi
}
functioninstall_required_packages(){
echo -e "Installrequiredpackages,pleasewait...\t Or you can press \e\e[0m to exit."
yum -y install wget gcc-c++ numactl autoconf automake libaio-devel zlib zlib-devel ncurses ncurses-develtcp_wrappers-devel bison-devel bison build-essential libncurses5-dev cmake opensslopenssl-devel >/dev/null
}
functioncheck_datadir(){
[ -f "${MDIR}" ] && echo -e "\e[1;35m目录被锁定,请确保没有安装过mysql服务\e[0m" && exit 1
[ ! -d "$MDIR" ] && mkdir-p $MDIR
#[ ! -d "$MDIR/data" ] && mkdir -p "$MDIR/data"二进制的mysql解压出来就有一个data目录的
chown-R mysql.mysql $MDIR
}
function menu(){
echo -e "\e[1;34m**************************************************************\e[0m"
cat/dev/null`
if [ $? -eq 0 ];then
echo -e "\e[1;34mDownload ${VERSION} now,please wait...\e[0m"
wget -c ${MYSQL56_DOWN_URL}
else
echo -e "\e[1;35mnetwork is error,please check first.\e[0m"
exit 1
fi
;;
2)
VERSION="mysql-5.7.21"
echo -e "\e[1;34m${VERSION} binary will be installed.\e[0m"
[ -f "${DIR}/${MYSQL57_BIN_SOURCE}.tar.gz" ] && cd ${DIR} && rm -f "${DIR}/${MYSQL57_BIN_SOURCE}.tar.gz"
[ -f "${DIR}/${MYSQL57_BIN_SOURCE}/" ] && cd ${DIR} && rm -f "${DIR}/${MYSQL57_BIN_SOURCE}/"
[ ! -f "${DIR}/${MYSQL57_BIN_SOURCE}.tar.gz" ] && cd ${DIR}
NETTEST=`ping -c 1 www.baidu.com >>/dev/null`
if [ $? -eq 0 ];then
echo -e "\e[1;34mDownload ${VERSION} now,please wait...\e[0m"
wget -c ${MYSQL57_DOWN_URL}
else
echo -e "\e[1;35mnetwork is error,please check first.\e[0m"
exit 1
fi
;;
*)
echo -e "\e[1;35mPleaseinput number 1 or 2,other is not valid\e[0m"
mysql_version
mysql_download
esac
}
function mysql_install(){
case$VERSIONin
"mysql-5.6.39")
echo -e "\e[1;34mConfig mysql,please wait...\e[0m"
cd ${DIR} && tar zxf ${MYSQL56_BIN_SOURCE}.tar.gz && cd ${MYSQL56_BIN_SOURCE}/ && \mv ./* /usr/local/mysql
mkdir -p /usr/local/mysql/logs && chown -R mysql.mysql /usr/local/mysql
[ $? -eq 0 ] && echo"Mysql install ok ,The next step is init mysql." || echo-e "\e[1;35mMysql install error ,please check\e[0m"
[ -f "/etc/my.cnf" ] && \mv /etc/my.cnf /etc/my.cnf.bak
cat >/etc/my.cnf'
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
interactive-timeout
EOF
cd ${MDIR} && mkdir -p ${MDIR}/{data,logs}
chown -R mysql.mysql /usr/local/mysql
chmod 777 /usr/local/mysql
#初始化数据库,登录密码是空的
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=${MDIR} --datadir=${DATADIR} --user=mysql >/dev/null 2>&1
echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile && echo "/etc/init.d/mysqld start" >> /etc/rc.d/rc.local
source /etc/profile
\cp ${MDIR}/support-files/mysql.server /etc/init.d/mysqld && chmod +x /etc/init.d/mysqld && chkconfig mysqldon
#加载动态库
cat >/etc/ld.so.conf.d/mysql.conf
页:
[1]