苍天有泪 发表于 2018-8-30 08:42:09

shell脚本(一键安装mysql)

  #/bin/bash
  #Title:mysql_install.sh
  #Description:Auto install mysql
  #System:Use Linux
  #Author:zy
  #Version:5.1
  #==========================================
  . jjconfig
  #:Use Mysqldir
  #:Use Mysqlconf
  #:Use Variable
  #:Use Source
  #==========================================
  #Set PWD
  PWDDIR=`pwd`
  Check_error()
  {
  if [ $? -eq 0 ];then
  echo "SUCCESS"
  else
  echo "FAIL" >>$PWDDIR/mysql.log
  fi
  }
  Check_exist()
  {
  if [ -d $Mysqldir -a -f $Mysqlconf -a -f $Variable -a $Source];then
  echo "OK"
  tar xvf $Source &>/dev/null
  Check_error
  else
  echo "准备文件不足,请用户先创建好"
  exit
  fi
  }
  Install()
  {
  yum -y install gcc gcc-c++ ncurses-devel openssl openssl-devel libtool* &>/dev/null
  Check_error
  cd mysql-5.1.50
  ./configure '--prefix=/usr/local/mysql-5.1' '--localstatedir=/data' '--with-unix-socket-path=/usr/local/mysql-5.1/mysql.sock' '--with-charsets=utf8' '--with-extra-charsets=complex' '--with-pthread' '--enable-thread-safe-client' '--with-ssl' '--with-client-ldflags=-all-static' '--with-mysqld-ldflags=-all-static' '--with-plugins=partition,federated,ndbcluster,innobase,csv,blackhole,myisam,innodb_plugin,heap,archive' '--enable-shared' '--enable-assembler'
  Check_error
  make
  Check_error
  make install
  Check_error
  }
  Initial()
  {
  groupadd mysql
  useradd -g mysql -s /sbin/nologin -M mysql
  if [ -f /data ];then
  rm -rf /data/*
  else
  mkdir /data
  fi
  if [ -f /usr/local/mysql-5.1 ];then
  rm -rf /usr/local/mysql-5.1/*
  else
  mkdir /usr/local/mysql-5.1
  fi
  chown -R mysql:mysql /usr/local/mysql-5.1
  chown -R mysql:mysql /data
  /usr/local/mysql-5.1/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.1 --datadir=/data
  Check_error
  cp /usr/local/mysql-5.1/share/mysql/mysql.server /etc/init.d/mysqld
  chmod 755 /etc/init.d/mysqld
  sed -i "/^basedir=$/s/.*/basedir=${Base_dir}/g" /etc/init.d/mysqld
  sed -i "/^datadir=$/s/.*/datadir=${Data_dir}/g" /etc/init.d/mysqld
  cp ./my.cnf /etc
  Check_error
  #设置环境变量
  sed -i "/^MYSQL=/s/.*/MYSQL=${Mysql}/g" /etc/profile
  echo 'PATH=$PATH:$MYSQL' >>/etc/profile
  echo "export PATH" >>/etc/profile
  source /etc/profile
  }
  Restart()
  {
  /etc/init.d/mysqld restart
  Check_error
  }
  main()
  {
  echo "************************************************"
  echo "1.解压 2.编译安装 3.初始化 4.启动服务 5.退出"
  echo "************************************************"
  read -p "请选择您的操作(1 2 3 4 5)" i
  case $i in
  1)
  Check_exist;;
  2)
  Install;;
  3)
  Initial;;
  4)
  Restart;;
  5)
  exit;;
  esac
  main
  }
  main;
  工作目录是dconfig,里面有三个文件:jjconfig,my.cnf和mysql-5.1.50.tar.gz
jjconfig的内容是:  Mysqldir="\/scripts\/dconfig"
  Mysqlconf="\/scripts\/dconfig\/my.cnf"
  Variable="\/scripts\/dconfig\/jjconfig"
  Source="\/scripts\/dconfig\/mysql-5.1.50.tar.gz"
  Base_dir="\/usr\/local\/mysql-5.1"
  Data_dir="\/data"
  Mysql="\/usr\/local\/services\/mysql\/bin"
  ~
  my.cnf的内容:
  [ mysqld ]
  datadir = /data
  basedir = /usr/local/mysql-5.1
  socket = /usr/local/mysql-5.1/mysql.sock
  ~

页: [1]
查看完整版本: shell脚本(一键安装mysql)