標籤:mysql install
#!/bin/bashMysql_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/sbinexport 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 1else 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.gzcheck_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 1fitar xf cmake-3.4.0.tar.gzcheck_result $?cd cmake-3.4.0./configure check_result $?gmakecheck_result $? gmake installcheck_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 1ficd ${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_cmakecheck_result $?make check_result $?make installcheck_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/datasocket=/mydata/mysql.sockuser=mysqlsymbolic-links=0[mysqld_safe]log-error=/mydata/error_log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidEOFecho -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_notinstall_or_not
本文出自 “不求最好,只求更好” 部落格,請務必保留此出處http://yujianglei.blog.51cto.com/7215578/1725585
自動化安裝MySQL-5.6.27