自动安装mysql以及配置修改脚本

# !/bin/bash
version=`uname -r |  awk -F '.' '{ print $(NF-1) }'`
killJava() {
  pid=$(ps -ef | grep java | grep -v grep | awk '{print $2}')
  if [ -n "$pid" ]; then
    kill -9 "$pid"
  fi
}
installMysql() {
  echo "正在检测是否有mysql..."$'\n'
  isMysql=$(ls /usr/bin | grep mysql)
  if [ -z "$isMysql" ]; then
    echo "可以安装"$'\n'
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-$version-10.noarch.rpm || (
      echo "下载失败"
      exit
    ) && yum -y install mysql57-community-release-$version-10.noarch.rpm || (
      echo "安装源失败"
      exit
    ) && yum -y install mysql-community-server
  else
    echo "查询到mysql存在,退出安装程序"
    exit 1
  fi

}
updateMysqlConfig() {
  echo "正在检测配置文件是否存在。。。。"
  isHaveConf=$(cat /etc/my.cnf)
  if [ -z "$isHaveConf" ]; then
    echo "配置文件不存在,正在创建。。。"
  fi
  echo "是否需要设置大小写忽略,1为是,0为否"
  read lower
  if [ $lower = 1 ]; then
    if [ -z $(sed -n '/lower*/p' /etc/my.cnf) ]; then
      sed -i '/\[mysqld\]/a lower_case_table_names=1' /etc/my.cnf
      echo "添加成功"
    else
      if [ $(sed -n '/lower*/p' /etc/my.cnf | awk '{print substr($0,length($0))}') = 1 ]; then
        echo "无需更新"
      else
        sed -i 's/lower_case_table_names=0/lower_case_table_names=1/g' /etc/my.cnf
        echo "修改成功"
      fi
    fi
    service mysqld restart >/dev/null 2>&1 || (echo "配置文件有问题,重启失败")
  elif [ $lower = 0 ]; then
    if [ -z $(sed -n '/lower*/p' /etc/my.cnf) ]; then
      sed -i '/\[mysqld\]/a lower_case_table_names=0' /etc/my.cnf
      echo "添加成功"
    else
      if [ $(sed -n '/lower*/p' /etc/my.cnf | awk '{print substr($0,length($0))}') = 0 ]; then
        echo "无需更新"
      else
        sed -i 's/lower_case_table_names=1/lower_case_table_names=0/g' /etc/my.cnf
        echo "修改成功"
      fi
    fi
    service mysqld restart >/dev/null 2>&1 || (echo "配置文件有问题,重启失败")
  else
    echo "输入有误"
    exit 1
  fi
}
initMysql() {
  echo "正在启动mysql..."
  Reason=$(service mysqld start 2>&1)
  if [ -z "$Reason" ]; then
    echo "启动成功"
    grep "A temporary password is generated for root@localhost*" /var/log/mysqld.log | awk '{print $11}' >Password.txt
    export MYSQL_PWD=$(cat Password.txt)
    echo "初始密码为"$(cat Password.txt)
    echo "初始密码信息保存在"$(pwd)/Password.txt
    echo "是否进行密码修改?1为是"
    read optionNum
    case $optionNum in
    1)
    echo "输入新密码:(密码需要高强度)"
    read passwd
      mysql -uroot -N  --connect-expired-password <<EOF
      ALTER USER 'root'@'localhost' IDENTIFIED BY '$passwd';
      exit
EOF
      echo "修改成功"
      ;;
    *)
      echo "输入错误"
      ;;
    esac
  else
    echo "启动失败"$'\n'$Reason
  fi

}
testMysql(){
  read yourpwd
  export MYSQL_PWD=$yourpwd
   mysql -uroot -N  <<EOF
      show databases;
      exit
EOF
}
installRedis(){
  echo "正在检测是否有redis..."$'\n'
  isRedis=`whereis redis-cli`
  if [ -z "$isRedis" ];then
    echo "可以安装"$'\n'
    yum -y install epel-release redis || (
       echo "下载失败"
       exit
    ) && service redis start || (
       echo "启动失败"
       exit
    )
  else
    echo "已经安装,目录为"$isRedis
    exit 1
  fi
}
startZentao(){
  zbox/zbox -mp 3307 -ap 8080
  zbox/zbox start
}
echo "1:停止程序,2:yum安装mysql,3:mysql初始化。4:mysql配置文件修改,5:安装Redis,6:启动zentao"
read num
case $num in
1)
  killJava
  echo "成功"
  ;;
2)
  installMysql
  ;;
3)
  initMysql
  ;;
4)
  updateMysqlConfig
  ;;
5)
  installRedis
  ;;
6)
  startZentao
  ;;
7)
  testMysql
  ;;
*)
  echo "输入错误"
  ;;
esac

posted @ 2020-11-10 21:01  北辰hpy  阅读(154)  评论(0)    收藏  举报