Linux - mysql8.0 install

#!/bin/bash
#
#**************************************************************************************
#Author:                                   Noise Lys
#QQ:                                       578110218
#Date:                                     2021-06-02
#Filename:                                 mysql_v5.7_install.sh
#URL:                                      https://www.cnblogs.com/noise/
#Description:                              The test script
#Copyright (C):                            2021 All rights reserved
#**************************************************************************************
. /etc/init.d/functions

START=echo -e \E[01:31m
END=\E[0m

OS_VERSION=`cat /etc/os-release  | sed s/"/=/g | awk -F[=]+ NR==3{print $2}`


#MYSQL=mysql-5.7.31-linux-glibc2.12-x86_64
#MYSQL_PASSWORD=123456




check(){

if [ $UID -ne 0 ]; then
  action "not root user,install failed"
    exit 1
fi

cat<<EOF
1> online install 
2> offline install 
EOF

read -p "please choose(1/2):" INSTALL_SW

sleep 1

read -p "please input the version you want to install (e.g. 5.7.31):" MYSQL_VERSION
MYSQL_VERSION_SHORT=`echo $MYSQL_VERSION | awk -F[.]+ {print $1"."$2}`

sleep 1

read -p "do you want to set password?(y/n):" MYSQL_PASSWORD_SW

if [[ ${MY_PASSWORD_SW} == "y" || ${MY_PASSWORD_SW} == "Y" ]]; then
   read -p "please input the password you want to set:" MYSQL_PASSWORD
fi

}

install_before(){

action "***STEP 1***start to install the related packages***"
sleep 1
yum -y install wget &>/dev/null
 
wget http://mirrors.163.com/mysql/Downloads/MySQL-${MYSQL_VERSION_SHORT}/mysql-${MYSQL_VERSION}-linux-glibc2.12-x86_64.tar.gz && ${START}"wget mysql successfully"${END} || ${START}"wget mysql error, please curl mirrors.163.com/mysql/Downloads/Mysql-${version}"${END}

action "***STEP 2***start to install the related packages***"
sleep 1
yum -y install libaio numactl-libs && ${START}"install libaio numactl-libs  successfully"${END} || ${START}"install libaio numactl-libs failed"${END}

action "***STEP 3***start to add mysql user and group***"
sleep 1
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

}

install_mysql(){

action "***STEP 4***unzip the mysql packages***"
sleep 1
tar xvf mysql-${MYSQL_VERSION}-linux-glibc2.12-x86_64.tar.gz -C /usr/local &>/dev/null && ${START}"unzipped successfully"${END} || ${START}"unzipped failed"${END}


action "***STEP 5***create the soft link and grants***"
sleep 1
cd /usr/local
ln -s mysql-${MYSQL_VERSION}-linux-glibc2.12-x86_64/ mysql
chown -R root.root /usr/local/mysql/


action "***STEP 6***prepare the PATH***"
sleep 1
echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

action "***STEP 7***prepare the configure file***"
sleep 1
touch /etc/my.cnf &>/dev/null
cat > /etc/my.cnf<<EOF
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid

[client]
socket=/data/mysql/mysql.sock
EOF

[ -d /data ] || mkdir /data

action "***STEP 8***genearte mysql key data***"
sleep 1
mkdir -pv /data/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql


action "***STEP 9***start mysql service***"
sleep 1
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start


sleep 1
if [[ ${MYSQL_PASSWORD_SW} == y || ${MYSQL_PASSWORD_SW} == Y ]]; then
action "***STEP 10***set password if yes***"
mysqladmin -uroot password ${MYSQL_PASSWORD} 
fi


echo -e [mysql]\nprompt="\\r:\\m:\\s(\\u@\\h) [\\d]>\\_"  >> /etc/my.cnf

reboot


}

check
install_before
install_mysql

 

Linux - mysql8.0 install

上一篇:我心中的云时代原生开发环境


下一篇:SqlServer怎么导入mdf、ldf文件