CentOS7.5 source shell script automatically installs more than MySQL 5.7.28 instances

In the previous article in this article, https://blog.51cto.com/8355320/2463218
I used the manual source code to install MySQL 5.7.28, the installation process is still time consuming, I wrote a shell automatic installation script, please refer to the script I have no problems testing, script I have two times to modify the instance name and variable name inside, there may be inconsistencies, please confirm by comparison.What can be optimized in the script? Please give more pointers, thank you!!Here are some instructions in the script:
1. mysql5.7.28 package (wget download is configured in script, if download is slow, you can download it beforehand, upload it to / opt path, and comment on the corresponding WGet download code, and the source installation process is time consuming, please wait for installation). The package name is as follows:
#boost_1_59_0.tar.gz
#mysql-boost-5.7.28.tar.gz

2. Upload paths for two mysql database scripts: /opt contains the following files (note the instance name in the sql script), and the sql test script name is as follows:
#testone.sql
#testtwo.sql
Instance dbtwo has a lower_case_table_names = 1 Parameter added
Instance dbone not added

4. Create corresponding soft links based on server disk allocation. The path I configure for the script is/data, which can be modified as needed, for example:

#mkdir /home/{data,deploy}
#ln -s /home/data/ /data

5. Modify (Ensure unique values within the LAN)
server_id = 3306 for #mysql3306.cnf
Server_id of #mysql3307.cnf = 3307

6. Be careful to modify the default root password to apply the connection password to apps and use it as needed
#dbone_rootpwd="Dbone.3306"
#dbtwo_rootpwd="Dbtwo.3307"

#dbone_appspwd="dbone3306"
#dbtwo_appspwd="dbtwo3307"

7. Modify dbone database instance dbone username dbone and corresponding password dbone3306

8. Modify dbone database instance name when importing database

9. Modify dbtwo database instance dbtwo username dbtwo and corresponding password dbtwo3307

10. Database instance name DB2 when modifying dbtwo to import database

#!/bin/bash
################################################################################################
# Install software -- Install Mysql 5.7.28 on CentOS 7
# 
# History: 2020/01/09 Asa release
################################################################################################
[ -f /etc/init.d/functions ]&& . /etc/init.d/functions

###Check if user is root
if [ $UID -ne 0 ]; then
    echo "Error: This script must be executed as root."
    exit 1
fi

echo "################################################################################################"
echo "                      Source Automatic Installation   MySQL 5.7.28      on CentOS7 Linux                           "
echo "################################################################################################"

#set mysql root password
echo "#########################       Preset Mysql root User Password           ###############################"
dbone_rootpwd="dbone.3306"
dbtwo_rootpwd="dbtwo.3307"

#set mysql apps password
echo "#########################       Preset Mysql apps User Password           ###############################"
dbone_appspwd="Dbone3306"
dbtwo_appspwd="Dbtwo3307"

echo "################################       Define directory path      #######################################"

##define mysql directory configuration variable
dboneDatadir=/data/mysql/dbone3306/data
dboneBinlogdir=/data/mysql/dbone3306/binlog
dboneLogdir=/data/mysql/dbone3306/logs
dboneSockfile=/data/mysql/dbone3306/mysql3306.sock
dbonepidfile=/data/mysql/dbone3306/mysqld3306.pid
dboneDefaultfile=/data/mysql/dbone3306/my3306.cnf

dbtwoDatadir=/data/mysql/dbtwo3307/data
dbtwoBinlogdir=/data/mysql/dbtwo3307/binlog
dbtwoLogdir=/data/mysql/dbtwo3307/logs
dbtwoSockfile=/data/mysql/dbtwo3307/dbtwo3307.sock
dbtwopidfile=/data/mysql/dbtwo3307/mysqld3307.pid
dbtwoDefaultfile=/data/mysql/dbtwo3307/my3307.cnf

BaseDir=/usr/local/mysql
MYSQL_DATADIR=/usr/local/mysql/data
UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock
BOOSTDIR=/usr/local/boost
Dbdir=/data
Softwaredir=/opt

mkdir -pv /data/mysql/{dbone3306,dbtwo3307}
mkdir -v /data/mysql/dbone3306/{logs,data,binlog}
mkdir -v /data/mysql/dbtwo3307/{logs,data,binlog}

echo "################################################################################################"
echo "                                        Modify system parameters                                             "
echo "################################################################################################"

###set the ip in hosts
hostsset() {
echo "############################   Ip&Hosts Configuration  #######################################"
hostname=`hostname`
ip=`ip a|grep 'inet '|grep -v '127.0.0.1'|awk '{print $2}'|awk -F '/' '{print $1}'`
for i in ${ip}
do
    a=`grep "${i}" /etc/hosts`
    if [ ! -n "${a}" ];then
        echo "${i} ${hostname}" >> /etc/hosts 
    else
        break
    fi
done
}

ntp() {
yum -y install ntp
systemctl enable ntpd
echo 'server ntp1.aliyun.com' >> /etc/ntp.conf
echo 'server ntp2.aliyun.com' >> /etc/ntp.conf
systemctl start ntpd
if [ $? != 0 ]; then
   errorExit 'ntp Start unsuccessful'
   exit 2
fi
  return 0
}

syspro() {
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
setenforce 0
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'LANG="en_US.UTF-8"' >> /etc/profile && source /etc/profile

cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF

cat >> /etc/sysctl.conf<<EOF
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
vm.swappiness = 0
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.neigh.default.gc_thresh1=4096
net.ipv4.neigh.default.gc_thresh2=6144
net.ipv4.neigh.default.gc_thresh3=8192
kernel.shmmax = 25769803774
kernel.shmmni = 4096
kernel.shmall = 16777216
kernel.sem = 1010 129280 1010 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744
EOF
modprobe br_netfilter
sysctl -p
}

fwport() {
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3307/tcp
firewall-cmd --reload
}

clean() {
echo "################################    Delete Old Mysql,Maria    #######################################"
    rpm -qa|grep mysql
    MariaDB=`rpm -qa|grep mariadb`
    yum -y remove mysql* --nodeps
    yum -y remove $MariaDB --nodeps

#Backup old my.cnf
if [ -s /etc/my.cnf ]; then
    mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak
fi
}

# Add users and groups
addusers() {
grep mysql /etc/passwd
RETVAL=$?
if [ $RETVAL -ne 0 ];then
   groupadd mysql
   useradd mysql -g mysql -s /sbin/nologin -M

     action "mysql user added successfully" /bin/true
  else
      action " $(echo -e " mysql user already exists ")" /bin/true
      exit 3
fi

chown -R mysql:mysql $Dbdir

cat >> /etc/profile<<EOF
if [ $USER = "mysql" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
source /etc/profile
}

#install mysql-5.7.26
dbinstall() {
echo "################################       Start downloading and installing      #######################################"
yum -y install bzr zlib-devel gcc-c++ ncurses ncurses-devel libev make cmake gcc autoconf automake zlib libxml \
libgcrypt libtool bison perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL perl-Digest-MD5 \
rsync perl-Data-Dumper net-tools wget vim openssl openssl-devel
cd $Softwaredir
wget -c http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar xf boost_1_59_0.tar.gz
mv boost_1_59_0 $BOOSTDIR

wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz
tar xf mysql-boost-5.7.26.tar.gz
cd mysql-5.7.26
cmake . -DCMAKE_INSTALL_PREFIX=$BaseDir \
-DMYSQL_DATADIR=$MYSQL_DATADIR \
-DMYSQL_UNIX_ADDR=$UNIX_ADDR \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_bin \
-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 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=bundled \
-DWITH_EDITLINE=bundled \
-DWITH_BOOST=$BOOSTDIR \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
if [ $? -eq 0 ];then
   make
   if [ $? -eq 0 ];then
      make install
      if [ $? -eq 0 ];then
        echo -e " \033[32m mysql install success \033[0m"
      else
        echo -e "\e[31;47;5m make install failed!! please check the result!! \e[0m"
        exit 6
      fi
   else
     echo -e "\e[31;47;5m make failed!! please check the result!! \e[0m"
     exit 5
   fi
else
  echo -e "\e[31;47;5m cmake failed!! please check the result!! \e[0m"
  exit 4  
fi

cat << EOF >> /etc/profile
export PATH=\$PATH:${BaseDir}/bin
EOF
source /etc/profile

chown -R mysql:mysql $BaseDir
}

#edit my.cnf
setmycnf() {
cat >>$dboneDefaultfile<<EOF
[client]
port = 3306
socket = ${dboneSockfile}

[mysql]
prompt="\u@jsshapp \R:\m:\s [\d]> "
no-auto-rehash

[mysqld]
user                                = mysql
port                                = 3306
symbolic-links                      = 0
basedir                             = ${BaseDir}
datadir                             = ${dboneDatadir}
socket                              = ${dboneSockfile}
pid-file                            = ${dbonepidfile}
server_id                           = 3306
character_set_server                = utf8
max_connections                     = 1000
skip_name_resolve                   = 1
open_files_limit                    = 65536
thread_cache_size                   = 64
table_open_cache                    = 4096
table_definition_cache              = 1024
table_open_cache_instances          = 64
max_prepared_stmt_count             = 1048576
explicit_defaults_for_timestamp     = true
log_timestamps                      = system

binlog_format                       = row
log_bin                           = ${dboneBinlogdir}/mysql-bin
binlog_rows_query_log_events        = on
expire_logs_days                    = 7
binlog_cache_size                   = 4M
max_binlog_cache_size               = 2G
max_binlog_size                     = 1G
sync_binlog                         = 1
log_bin_trust_function_creators     = 1

slow_query_log                      = on
slow_query_log_file                 = ${dboneDatadir}/slow.log
log-error                           = ${dboneLogdir}/error.log
log_queries_not_using_indexes      = on
long_query_time                     = 1.000000

gtid_mode                           = on
enforce_gtid_consistency            = on

default_storage_engine              = innodb                    
default_tmp_storage_engine          = innodb                    
innodb_data_file_path               = ibdata1:1024M:autoextend
innodb_temp_data_file_path          = ibtmp1:12M:autoextend
innodb_buffer_pool_filename         = ib_buffer_pool
innodb_log_files_in_group           = 3
innodb_log_file_size                = 512M
innodb_online_alter_log_max_size    = 1024M
innodb_open_files                   = 4096
innodb_page_size                    = 32k
innodb_thread_concurrency           = 0
innodb_read_io_threads              = 4
innodb_write_io_threads             = 4
innodb_purge_threads                = 4
innodb_page_cleaners                = 4
innodb_print_all_deadlocks          = on
innodb_lock_wait_timeout            = 20
innodb_spin_wait_delay              = 128
innodb_autoinc_lock_mode            = 2
innodb_io_capacity                  = 200
innodb_io_capacity_max              = 2000
#innodb_flush_neighbors             = 
innodb_log_buffer_size              = 8M
innodb_flush_log_at_timeout         = 1
innodb_flush_log_at_trx_commit      = 2
innodb_buffer_pool_size             = 1024M
innodb_buffer_pool_instances        = 4
autocommit                          = 1
innodb_buffer_pool_dump_pct         = 25
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_load_at_startup  = ON

[mysqldump]
quick
max_allowed_packet = 32M
EOF

cat >>$dbtwoDefaultfile<<EOF
[client]
port = 3307
socket = ${dbtwoSockfile}

[mysql]
prompt="\u@jsshapp \R:\m:\s [\d]> "
no-auto-rehash

[mysqld]
user                                = mysql
port                                = 3307
symbolic-links                      = 0
lower_case_table_names              = 1
basedir                             = ${BaseDir}
datadir                             = ${dbtwoDatadir}
socket                              = ${dbtwoSockfile}
pid-file                            = ${dbtwopidfile}
server_id                           = 3307
character_set_server                = utf8
max_connections                     = 1000
skip_name_resolve                   = 1
open_files_limit                    = 65536
thread_cache_size                   = 64
table_open_cache                    = 4096
table_definition_cache              = 1024
table_open_cache_instances          = 64
max_prepared_stmt_count             = 1048576
explicit_defaults_for_timestamp     = true
log_timestamps                      = system

binlog_format                       = row
log_bin                            = ${dbtwoBinlogdir}/mysql-bin
binlog_rows_query_log_events        = on
expire_logs_days                    = 7
binlog_cache_size                   = 4M
max_binlog_cache_size               = 2G
max_binlog_size                     = 1G
sync_binlog                         = 1

slow_query_log                      = on
slow_query_log_file                 = ${dbtwoDatadir}/slow.log
log-error                           = ${dbtwoLogdir}/error.log
log_queries_not_using_indexes      = on
long_query_time                     = 1.000000

gtid_mode                           = on
enforce_gtid_consistency            = on

default_storage_engine              = innodb
default_tmp_storage_engine          = innodb
innodb_data_file_path               = ibdata1:1024M:autoextend
innodb_temp_data_file_path          = ibtmp1:12M:autoextend
innodb_buffer_pool_filename         = ib_buffer_pool
innodb_log_files_in_group           = 3
innodb_log_file_size                = 512M
innodb_online_alter_log_max_size    = 1024M
innodb_open_files                   = 4096
innodb_page_size                    = 32k
innodb_thread_concurrency           = 0
innodb_read_io_threads              = 4
innodb_write_io_threads             = 4
innodb_purge_threads                = 4
innodb_page_cleaners                = 4
innodb_print_all_deadlocks          = on
innodb_lock_wait_timeout            = 20
innodb_spin_wait_delay              = 128
innodb_autoinc_lock_mode            = 2
innodb_io_capacity                  = 200
innodb_io_capacity_max              = 2000
#innodb_flush_neighbors             = 
innodb_log_buffer_size              = 8M
innodb_flush_log_at_timeout         = 1
innodb_flush_log_at_trx_commit      = 2
innodb_buffer_pool_size             = 1024M
innodb_buffer_pool_instances        = 4
autocommit                          = 1
innodb_buffer_pool_dump_pct         = 25
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_load_at_startup  = ON

[mysqldump]
quick
max_allowed_packet = 32M
EOF
}

#dbone initialize
dboneinitialize() {
echo "################################      dbone Initialization     #######################################"
$BaseDir/bin/mysqld --defaults-file=$dboneDefaultfile --initialize --user=mysql --basedir=$BaseDir --datadir=$dboneDatadir
sleep 120
less $dboneLogdir/error.log|grep 'A temporary password is generated for root@localhost:'
A=$?
count=0
while [ $count -lt 10 ]
do
    if [ $A -eq 0 ];then
        echo -e " \033[32m mysql initialize success!! \033[0m"
        break
    else
        echo -e "\e[31;47;5m the result is null,check again!! \e[0m"
        count=$[${count}+1]
    fi
done

#create ssl_rsa
echo "################################      dbone generate ssl To grant authorization     #######################################"
$BaseDir/bin/mysql_ssl_rsa_setup --user=mysql --basedir=$BaseDir --datadir=$dboneDatadir
if [ $? -eq 0 ];then
   echo -e " \033[32m create ssl_rsa success!! \033[0m"
else
  echo -e "\e[31;47;5m create ssl_rsa failed!! \e[0m"
  exit 7  
fi

echo "################################      dbone Service Start     #######################################"
$BaseDir/bin/mysqld_safe --defaults-file=$dboneDefaultfile --user=mysql 2>&1 > /dev/null &
sleep 10
netstat -tnlp|grep 3306
if [ $? -eq 0 ];then
   echo -e " \033[32m dbone start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbone start failed!! \e[0m"
  exit 8  
fi

echo "################################      dbone root User temporary password     #######################################"
dboneTempPass=$(less $dboneLogdir/error.log|grep 'A temporary password is generated for root@localhost:' |awk  '{print $NF}')
echo $dboneTempPass

echo "################################     automatic correction dbone root User Initial Password       ###############################"
$BaseDir/bin/mysqladmin -uroot -p"$dboneTempPass" -S $dboneSockfile password $dbone_rootpwd
if [ $? -eq 0 ];then
   echo -e " \033[32m dbone rootpwd changed success!! \033[0m"
else
  echo -e "\e[31;47;5m dbone rootpwd changed failed!! \e[0m"
  exit 9  
fi

echo "################################      dbone Service shutdown     #######################################"
$BaseDir/bin/mysqladmin -uroot -p$dbone_rootpwd -S $dboneSockfile shutdown
netstat -tnlp|grep 3306
if [ $? -ne 0 ];then
   echo -e " \033[32m dbone stop success!! \033[0m"
else
  echo -e "\e[31;47;5m dbone stop failed!! \e[0m"
  exit 10
fi
}

#dbtwo initialize
dbtwoinitialize() {
echo "################################      dbtwo Initialization     #######################################"
$BaseDir/bin/mysqld --defaults-file=$dbtwoDefaultfile --initialize --user=mysql --basedir=$BaseDir --datadir=$dbtwoDatadir
sleep 120
less $dbtwoLogdir/error.log|grep 'A temporary password is generated for root@localhost:'
B=$?
count=0
while [ $count -lt 10 ]
do
    if [ $B -eq 0 ];then
        echo -e " \033[32m mysql initialize success!! \033[0m"
        break
    else
        echo -e "\e[31;47;5m the result is null,check again!! \e[0m"
        count=$[${count}+1]
    fi
done

#create ssl_rsa
echo "################################      dbtwo generate ssl To grant authorization     #######################################"
$BaseDir/bin/mysql_ssl_rsa_setup --user=mysql --basedir=$BaseDir --datadir=$dbtwoDatadir
if [ $? -eq 0 ];then
   echo -e " \033[32m create ssl_rsa success!! \033[0m"
else
  echo -e "\e[31;47;5m create ssl_rsa failed!! \e[0m"
  exit 11
fi

echo "################################      dbtwo Service Start     #######################################"
$BaseDir/bin/mysqld_safe --defaults-file=$dbtwoDefaultfile --user=mysql 2>&1 > /dev/null &
sleep 10
netstat -tnlp|grep 3307
if [ $? -eq 0 ];then
   echo -e " \033[32m dbtwo start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbtwo start failed!! \e[0m"
  exit 12  
fi

echo "################################      dbtwo root User temporary password     #######################################"
dbtwoTempPass=$(less $dbtwoLogdir/error.log|grep 'A temporary password is generated for root@localhost:' |awk  '{print $NF}')
echo $dbtwoTempPass

echo "################################     automatic correction dbtwo root User Initial Password       ###############################"
$BaseDir/bin/mysqladmin -uroot -p"$dbtwoTempPass" -S $dbtwoSockfile password $dbtwo_rootpwd
if [ $? -eq 0 ];then
   echo -e " \033[32m dbtwo rootpwd changed success!! \033[0m"
else
  echo -e "\e[31;47;5m dbtwo rootpwd changed failed!! \e[0m"
  exit 13
fi

echo "################################      dbtwo Service shutdown     #######################################"
$BaseDir/bin/mysqladmin -uroot -p$dbtwo_rootpwd -S $dbtwoSockfile shutdown
netstat -tnlp|grep 3307
if [ $? -ne 0 ];then
   echo -e " \033[32m dbtwo stop success!! \033[0m"
else
  echo -e "\e[31;47;5m dbtwo stop failed!! \e[0m"
  exit 14  
fi
}

#set dbonestart script
dbonestart() {
SOCK="${dboneSockfile}"
CNF="${dboneDefaultfile}"
MYSQL_USER="root"
MYSQL_PWD="${dbone_rootpwd}"
CmdPath="${BaseDir}/bin"
cat > /etc/init.d/dbone<<EOF
#!/bin/sh
# chkconfig: 2345 80 90 
# Simple dbone mysql init.d script conceived to work on Linux systems

SOCK="${SOCK}"
CNF="${CNF}"
MYSQL_USER="${MYSQL_USER}"
MYSQL_PWD="${MYSQL_PWD}"
CmdPath="${CmdPath}"

#startup function
function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh ${CmdPath}/mysqld_safe --defaults-file=${CNF} --user=mysql  2>&1 > /dev/null &
}

#stop function
function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    ${CmdPath}/mysqladmin -u ${MYSQL_USER} -p${MYSQL_PWD} -S ${SOCK} shutdown
}

#restart function
function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case \$1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: dbone {start|stop|restart}\n"
esac
EOF

chmod +x /etc/init.d/dbone
chkconfig --add dbone
chkconfig --list dbone
service dbone start
netstat -tnlp|grep 3306
if [ $? -ne 0 ];then
   echo -e " \033[32m dbone start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbone start failed!! \e[0m"
  exit 15  
fi
}

#set dbtwostart script
dbtwostart() {
SOCK="${dbtwoSockfile}"
CNF="${dbtwoDefaultfile}"
MYSQL_USER="root"
MYSQL_PWD="${dbtwo_rootpwd}"
CmdPath="${BaseDir}/bin"
cat > /etc/init.d/dbtwo<<EOF
#!/bin/sh
# chkconfig: 2345 81 92 
# Simple dbtwo mysql init.d script conceived to work on Linux systems

SOCK="${SOCK}"
CNF="${CNF}"
MYSQL_USER="${MYSQL_USER}"
MYSQL_PWD="${MYSQL_PWD}"
CmdPath="${CmdPath}"

#startup function
function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh ${CmdPath}/mysqld_safe --defaults-file=${CNF} --user=mysql 2>&1 > /dev/null &
}

#stop function
function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    ${CmdPath}/mysqladmin -u ${MYSQL_USER} -p${MYSQL_PWD} -S ${SOCK} shutdown
}

#restart function
function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 2
    function_start_mysql
}

case \$1 in
start)
    function_start_mysql
;;
stop)
    function_stop_mysql
;;
restart)
    function_restart_mysql
;;
*)
    printf "Usage: dbtwo {start|stop|restart}\n"
esac

EOF

chmod +x /etc/init.d/dbtwo
chkconfig --add dbtwo
chkconfig --list dbtwo
service dbtwo start
netstat -tnlp|grep 3307
if [ $? -ne 0 ];then
   echo -e " \033[32m dbtwo start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbtwo start failed!! \e[0m"
  exit 16  
fi
}

dboneimp() {
echo "###############################  Restart again dbone Database Confirmation System Service is OK  ##################################"
service dbone stop
service dbone start
sleep 10
netstat -tnlp|grep 3306
if [ $? -ne 0 ];then
   echo -e " \033[32m dbone start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbone start failed!! \e[0m"
  exit 17  
fi
echo "###############################        Establish dbone library           ##################################"
MYSQL_CMD="$BaseDir/bin/mysql -uroot -p"${dbone_rootpwd}" -S ${dboneSockfile}"
$MYSQL_CMD -e "create database dbone default character set utf8 collate utf8_bin;grant select,insert,update,delete,create,execute on dbone.* to 'dbone'@'%' identified by 'dbone3306';flush privileges;"
$MYSQL_CMD -e "show databases;" | grep dbone
if [ $? -ne 0 ]
 then
   echo -e "\e[31;47;5m Establish dbone Database failure!\e[0m"
   exit 18
fi
echo "###############################           dbone Import data            ##################################"
cd $Softwaredir
$BaseDir/bin/mysql -uroot -p"${dbone_rootpwd}" -S ${dboneSockfile} --comments dbone < testone.sql
if [ $? -ne 0 ]
 then
   echo -e "\e[31;47;5m Import data failed!\e[0m"
   exit 19
fi
}

dbtwoimp() {
echo "###############################   Restart again dbtwo Database Confirmation System Service is OK   ##################################"
service dbtwo stop
service dbtwo start
sleep 10
netstat -tnlp|grep 3307
if [ $? -ne 0 ];then
   echo -e " \033[32m dbtwo start success!! \033[0m"
else
  echo -e "\e[31;47;5m dbtwo start failed!! \e[0m"
  exit 20  
fi
echo "###############################        Establish dbtwo  library           ##################################"
MYSQL_CMD="$BaseDir/bin/mysql -uroot -p"${dbtwo_rootpwd}" -S ${dbtwoSockfile}"
$MYSQL_CMD -e "create database dbtwo  default character set utf8 collate utf8_bin;grant select,insert,update,delete,create,execute on dbtwo.* to 'dbtwo'@'%' identified by 'dbtwo3307';flush privileges;"
$MYSQL_CMD -e "show databases;" | grep dbtwo 
if [ $? -ne 0 ]
 then
   echo -e "\e[31;47;5m Establish dbtwo  Database failure!\e[0m"
   exit 21
fi
echo "###############################           dbtwo  Import data            ##################################"
cd $Softwaredir
$BaseDir/bin/mysql -uroot -p"${dbtwo_rootpwd}" -S ${dbtwoSockfile} --comments dbtwo  < testtwo.sql
if [ $? -ne 0 ]
 then
   echo -e "\e[31;47;5m Import data failed!\e[0m"
   exit 22
fi
}

main() {

hostsset

ntp

syspro

fwport

clean

addusers

dbinstall

setmycnf

dboneinitialize

dbtwoinitialize

dbonestart

dbtwostart

dboneimp

dbtwoimp
}

main

echo "#######################        Installation complete (please record) dbone data base dbone Information)          ##############################"
echo "root Password:"
echo $dbone_rootpwd
echo "Database instance connection password:"
echo $dbone_appspwd

echo "#######################        Installation complete (please record) dbtwo data base dbtwo Information)          ##############################"
echo "root Password:"
echo $dbtwo_rootpwd
echo "Database instance connection password:"
echo $dbtwo_appspwd

Tags: Linux MySQL Database mysqladmin SQL

Posted on Thu, 09 Jan 2020 09:28:18 -0800 by west4me