自动化安装MySQL-5.6.27

#!/bin/bash
Mysql_Major_version="5.6"
Mysql_Minin_version="27"
Mysql_download_url="http://mirrors.sohu.com/mysql/MySQL-${Mysql_Major_version}/mysql-${Mysql_Major_version}.${Mysql_Minin_version}.tar.gz"
Tools_download_dir="/home/tools"
Mysql_install_dir="/app/mysql"
Mysql_root_dir="/mydata"
Mysql_data_dir="${Mysql_root_dir}/data"
Mysql_bin_log_dir="${Mysql_root_dir}/bin_log"
Mysql_error_log_dir="${Mysql_root_dir}/error_log"
Mysql_relay_log_dir="${Mysql_root_dir}/relay_log"
Mysql_user="mysql"
Mysql_group="mysql"
Mysql_cmake="cmake . -DCMAKE_INSTALL_PREFIX=${Mysql_install_dir}  -DMYSQL_DATADIR=${Mysql_data_dir}  -DMYSQL_UNIX_ADDR=${Mysql_root_dir}/mysql.sock  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DEXTRA_CHARSETS=all  -DENABLED_LOCAL_INFILE=ON  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_FEDERATED_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1  -DWITH_FAST_MUTEXES=1  -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0"
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
#****************************************************************************************************************************************************************************
check_result(){
  if [ $1 != 0 ];then
    echo -e  "\e[1;31m ERROR!!!! <========Exit  install  mysql=======>   \e[0m"
    exit 1 
  fi
}
#**************************************************************************************************************************************************************************
root_or_not() {
if [ "$UID" != 0 ];then
  echo -e "\e[1;31m  ERROR, You are not root ,Please login in root to execule the scripts!  \e[0m"
  exit 1
else
  echo -e  "\e[1;31m Good, You are root,and you can continue to install mysql! \e[0m"
fi
}
#**************************************************************************************************************************************************************************
install_or_not () {
  read -p "Installed mysql,Press N to exit or  Press Y to continue: " INSTALL_Y_N
  case $INSTALL_Y_N in
  Y|y)
            echo -e "\e[1;31m <=========Starting install  mysql=======>  \e[0m" 
            start_install
  ;;
  N|n)
            echo -e  "\e[1;31m <=========Stop install  mysql=======>  \e[0m" 
            exit 0
  ;;
  *)  
            install_or_not
  ;;
  esac
}
#**************************************************************************************************************************************************************************
check_user_group() {
  echo "\e[1;44m <======Creating  mysql  user and group ======>  \e[0m" 
  check_user=`awk -F: ‘{a[$1]}END{ if("‘$Mysql_user‘" in a){print "yes"} else print "no"}‘  /etc/passwd`
  check_group=`awk -F: ‘{a[$1]}END{ if("‘$Mysql_group‘" in a){print "yes"} else print "no"}‘  /etc/group`
  if  [ "${check_user}"  = "yes" -a  "${check_group}" = "yes" ]; then
      echo -e "\e[1;31m mysql  is  exists! \e[0m"
  else
      /usr/sbin/groupadd  mysql  &&  /usr/sbin/useradd -g mysql -M mysql 
  fi
}
#**************************************************************************************************************************************************************************
download_mysql() {
  echo -e "\e[1;44m Starting download mysql source tarball,Version is ${Mysql_Major_version}.${Mysql_Minin_version},DownLoad URL:http://mirrors.sohu.com \e[0m"
  [ ! -d ${Tools_download_dir} ] &&  mkdir ${Tools_download_dir}  -p
  cd ${Tools_download_dir}  
  yum  install   wget  -y
  check_result $?
  wget ${Mysql_download_url}
  check_result $?
}
#**************************************************************************************************************************************************************************
install_process() {
yum -y install gcc gcc-c++  ncurses-devel bison  perl 
check_result $?
echo -e "\e[1;44m mysql source tarball,create mysql  data_root directory  ${Mysql_root_dir} \e[0m"
[ ! -d ${Mysql_data_dir} ]      &&  mkdir  ${Mysql_data_dir}  -p
[ ! -d ${Mysql_bin_log_dir} ]   && mkdir ${Mysql_bin_log_dir}   -p
[ ! -d ${Mysql_error_log_dir} ] && mkdir ${Mysql_error_log_dir}  -p
[ ! -d ${Mysql_relay_log_dir} ] && mkdir ${Mysql_relay_log_dir}
echo -e "\e[1;44m  Creating${Mysql_install_dir} \e[0m"
[ ! -d ${Mysql_install_dir} ] && mkdir -p ${Mysql_install_dir}
echo -e "\e[1;44m <======First,Download cmake =====> \e[0m"
cd ${Tools_download_dir}  
wget https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz
check_result $?
if [ ! -f ${Tools_download_dir}/cmake-3.4.0.tar.gz ]  ;then
  echo "\e[1;31m  cmake-3.4.0.tar.gz is not exist!! \e[0m"
  exit 1
fi
tar xf cmake-3.4.0.tar.gz
check_result $?
cd  cmake-3.4.0
./configure  
check_result $?
gmake
check_result $?     
gmake  install
check_result $? 
echo   -e  "\e[1;44m  cmake development tool is  installed ,Sencond:  starting install  mysql-${Mysql_Major_version}.${Mysql_Minin_version}.tar.gz \e[0m"
if [ ! -f ${Tools_download_dir}/mysql-${Mysql_Major_version}.${Mysql_Minin_version}.tar.gz ] ; then
  echo "\e[1;31m  mysql-${Mysql_Major_version}.${Mysql_Minin_version}.tar.gz is not exist!! \e[0m"
  exit 1
fi
cd  ${Tools_download_dir}   
tar xf  mysql-${Mysql_Major_version}.${Mysql_Minin_version}.tar.gz   
check_result $?
cd  mysql-${Mysql_Major_version}.${Mysql_Minin_version}
$Mysql_cmake
check_result $?
make    
check_result $?
make  install
check_result $?
}
configure_env(){
echo -e  "\e[1;44m  <==========Configure system Environment========>   \e[0m"
/bin/cat  /etc/profile  | grep mysql  &&  result=echo $? 
 if [ "$result" != 0 ];then
  echo "export PATH=${Mysql_install_dir}/bin:\$PATH"   >> /etc/profile  &&  source  /etc/profile
  echo  -e "\e[1;31m  <=======Environment is OK.======>  \e[0m"
else
  echo -e "\e[1;31m  <=======Environment is OK,Please don‘t repeat configure it.======>  \e[0m"
 fi
}
configure_privilege(){
  /bin/chown  -R  ${Mysql_user}.${Mysql_group}   ${Mysql_root_dir}
  check_result $?
  /bin/chmod  -R  1777 /tmp   
}
mysql_init(){
  cd ${Mysql_install_dir}/scripts
  ./mysql_install_db --basedir=${Mysql_install_dir}  --datadir=${Mysql_data_dir}  --user=${Mysql_user}
  check_result $?
}
prepare_start_shell(){
  cd  ${Mysql_install_dir}/support-files
  check_result $?
  /bin/cp  mysql.server  /etc/init.d/mysqld
  check_result $?
}
configure_conf(){
echo -e "\e[1;44m Confiugre my.cnf file \e[0m"
/bin/cat   >/etc/my.cnf  << EOF
[mysqld]
datadir=/mydata/data
socket=/mydata/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/mydata/error_log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF
echo -e  "Configure file Finished"
}
start_mysql(){
  /etc/init.d/mysqld start 
  check_result $?
}
#************************************************************************************************************************************************************************
start_install() {
  check_user_group
  download_mysql
  install_process
  configure_env
  configure_privilege
  mysql_init
  prepare_start_shell
  configure_conf
  start_mysql
}
#*************************************************************************************************************************************************************************
root_or_not
install_or_not
时间: 2024-10-10 08:27:47

自动化安装MySQL-5.6.27的相关文章

一键自动化安装mysql服务端

声明 作者:昨夜星辰 博客:http://yestreenstars.blog.51cto.com/ 本文由本人创作,如需转载,请注明出处,谢谢合作! 目的 一键自动化安装mysql服务端. 环境 OS: CentOS 6.2 32 mysql: 5.6.20 配置 #!/bin/bash # Script Name: One-key Automatic Install MySQL server # Author: yestreenstars # Create Time: 2014-08-18

centos7 安装 Mysql 5.7.27,详细完整教程

1. 下载 MySQL yum包 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm 2.安装MySQL源 rpm -Uvh mysql57-community-release-el7-10.noarch.rpm 3.安装MySQL服务端,需要等待一些时间 yum install -y mysql-community-server 4.启动MySQL systemctl start mysqld.servi

mysql 5.6.27脚本自动化安装

#!/bin/bash #-------------------install mysql 5.6.27 :: begin------------------------ mysql -V &>/dev/null if [ $? -eq 0 ];then     mysql -V     echo "mysql is exist"  else     cd /app/service/tools     tar -zxvf mysql-5.6.27.tar.gz     c

运维自动化之ansible playbook安装mysql

上次介绍了如何使用ansible playbook安装zabbix客户端(http://dl528888.blog.51cto.com/2382721/1436745),这次介绍一下如何使用playbook安装mysql. 下面是安装mysql的信息: mysql_basedir: /data/mysql/basedir                    源码目录 mysql_datadir: /data/mysql/datadir                    数据目录 mysql

[MySQL] MySQL的自动化安装部署

有过MySQL运维的人应该都清楚,线上的MySQL一般都采用源码编译,因为这样才可以根据企业的各自需要选择要编译的功能,虽然MySQL的源码编译挺简单的,但是试想一下,如果你有几百台服务器同时要安装MySQL,难道你还一台台去手动编译.编写配置文件吗?这显然太低效了,本文讨论MySQL的自动化安装部署. 1.制作符合自己需求的RPM包 我们要根据MySQL的源码编译符合企业需求的RPM包,源码获取命令如下: wget http://downloads.mysql.com/archives/get

Mysql 5.6.27 双主模型&&主备模型安装测试

http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.27-1.el6.x86_64.rpm-bundle.tar 测试环境:    两台服务器          MYSQL-1:10.11.22.78          MYSQL-2:10.11.22.248    测试系统          Centos 6.5_64    Mysql版本          MySQL-5.6.27    Keepalived版本          k

mysql自动化安装

MySQL安装一般使用RPM或者源码安装的方式.RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整.源码安装的优点是可以自定义安装目录,缺点是编译时间长,过程复杂 其实还有一种方式,定制RPM包.它相当于用源码安装的方式定制了一个RPM包.一次打包,可以多次使用它可以定制路径,安装时自动创建帐号,自动配置服务,环境变量等,并且安装过程快速,简单.在大规模部署的场景下,优点十分突出.缺点是制作RPM包,需要自己编写Red Hat

自动化运维——一键安装MySQL

根据项目需要,前段时间在搞EMM系统各种安装包的自动化部署工作,主要包括一键安装和一键启动\停止功能.总结记录下来,以供后用. 本文主要是自动安装MySQL5.7.11版,Linux版脚本在CentOS7系统下测试通过. 流程如下: a. 增加mysql用户和组 b. 检查系统是否安装有老版MySQL,如果有就卸载. c.  卸载OS预装的Maria DB. 由于MariaDB与MySQL水火不容,须将系统预装的MariaDB卸载后再安装mysql. b. 安装MySQL, 本次是采用RPM包的

mysql自动化安装脚本

学习了两周linux shell脚本,终于写出一个mysql自动化安装脚本.加上今天一整天的测试,可以正常执行安装mysql 5.5.40. 其他版本还没有测试.现分享一下.也请高手指点一下.执行该脚本的前提是: 环境介绍: 1.redhat 6.3 x64,最小化安装 2.RAM: 2G,HD:30G 3.关闭selinux 4.配置好yum源(我使用自己配置的源) 5.打开ssh,病配置好iptables,允许远程登录访问. 6.所需软件和文件: cmake-2.8.10.1.tar.gz

mysql自动化安装脚本开发

最近正好有空闲时间进行mysql自动安装脚本开发,预计先用shell实现一个版本,后续继续用python改造开发,最终实现python版本的开发. 2019-3-18,完成shell脚本的mysql自动化安装脚本的开发与调试.信息如下:mysql版本为5.6.43,通过shell函数的方式实现数据安装的3个阶段,再加上一个全局阶段,共4个阶段 1.全局阶段通过if [ $(id -u) != "0" ]判断当前操作用户是否为root,如不等0,则提示用户使用root用户执行该脚本,实现