kaywang 发表于 2018-8-17 09:17:07

shell 之 mysql安装脚本

  此文为mysql 服务器安装脚本。
  #!/bin/bash
  #ver 0.2
  #by zm 2011/04/23
  #安装 mysql_server;
  #注意!!
  #参数解释
  #
  # CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
  # -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp"   // 如果是Inter处理器,使用pgcc提高1%性能
  #
  #
  #   --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock   // 使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面
  #    --with-client-ldflags=-all-static
  #    --with-mysqld-ldflags=-all-static   //-static13%,静态链接提高13%性能
  #
  #    --with-readline   从“行”上面读取
  #
  #    --with- 指定缺省字符集
  #
  #    --with-collation=utf8_general_ci指定缺省排序方式
  #
  #    --with-extra-charsets=complex安装所有字符,有这个就足够了
  #
  #    --with-extra-charsets=all 指定安装扩展字符集
  #
  #    --enable-local-infile 指定允许本地导入文件
  #
  #    --enable-thread-safe-client 指定线程安全模式
  #
  #    --enable-assembler 允许使用汇编模式(优化性能)
  #
  #    --with-big-tables 指定支持超大表
  #
  #    --without-debug去除诊断模式,如果用--with-debug=full编译,大多数查询慢20%
  #
  #变量
  mysql_cnf_dir=/etc/my.cnf
  mysql_dir=/usr/local/mysql
  os_type=`uname`
  user=`grep 'mysql' /etc/passwd | wc -l`
  ###mysql_server
  #check os
  if [ $os_type != "Linux" ];then
  echo "the script for linux only!"
  exit 1
  fi
  #check mysql user and group
  if [ $user = 0 ];then
  useradd -s /sbin/nologin mysql
  echo "useradd mysql !"
  fi
  #
  if [ ! -f "$mysql_cnf_dir" ] || [ ! -d "$mysql_dir" ];then
  tar zxf mysql*.tar.gz
  cd mysql*/
  #
  CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti -fomit-frame-pointer -ffixed-ebp" \
  ./configure --prefix=/usr/local/mysql --enable-assembler \
  --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static \
  --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \
  --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all \
  --with-readline --enable-local-infile --enable-thread-safe-client \
  --with-big-tables --without-debug
  make
  make install
  #configure file
  cp support-files/my-large.cnf /etc/my.cnf
  cp support-files/mysql.server /etc/init.d/mysqld
  chmod +x /etc/init.d/mysqld
  cd ../
  rm -rf mysql*/
  #install_mysql_db
  mysql_var=`ls -l $mysql_dir/var/mysql | grep '^d' |wc -l`
  if [ "$mysql_var" = 0 ];then
  chow -R mysql.mysql $mysql_dir/var
  chow -R mysql.mysql $mysql_dir/tmp
  $mysql_dir/bin/mysql_install_db --user=mysql
  else
  echo "mysql_install_db already installed !"
  fi
  #check !
  ld_so_conf=`cat /etc/ld.so.conf | grep mysql | wc -l`
  profile_mysql_bin=`cat /etc/profile | grep mysql | wc -l`
  if [ -f "$mysql_cnf_dir" ] || [ -d "$mysql_dir" ];then
  echo "ok!"
  #
  if [ $ld_so_conf = 0 ];then
  echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile
  source /etc/profile
  fi
  #
  if [ $profile_mysql_bin = 0 ];then
  echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
  ldconfig
  fi
  #
  else
  echo "error! can't install mysql_serverplease check ! Will now out of the script!"
  exit 1
  fi
  ###else
  else
  echo "mysql_server already installed!"
  #
  fi

页: [1]
查看完整版本: shell 之 mysql安装脚本