outlook 发表于 2018-10-4 09:10:38

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]
查看完整版本: mysql-5.6.x和mysql-5.7.x二进制安装