一键化安装MySQL脚本
[root@expr01 ~]
#!/bin/bash
MYSQL_TAR=mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
ACOUNT=root
PASSWD=123456
DATADIR=/apps
[ -d $DATADIR ] || mkdir $DATADIR -p
NUM=`ss -tnl | grep 3306 | wc -l`
if [ $NUM -ne 0 ] ;then
echo -e "\E[31;5m------------3306端口被占用安装退出-----------\E[0m "
exit 1
fi
echo -e "\E[32;5m------------3306端口正常-----------\E[0m"
rpm -qa | grep mariadb >/dev/null
if [ $? -eq 0 ] ; then
RPM=`rpm -qa | grep mariadb`
echo -e "\E[32;5m------------正在删除$RPM------------\E[0m "
yum erase -y $RPM >/dev/null
fi
PWD=`pwd`
if [ ! -f $PWD/$MYSQL_TAR ] ;then
echo -e "\E[31;5m------------$MYSQL_TAR包不存在安装退出------------\E[0m "
exit 2
fi
echo -e "\E[32;5m------------解压$MYSQL_TAR包------------\E[0m "
tar xf $PWD/$MYSQL_TAR
BASEDIR=`ls -rt |tail -1`
mv $PWD/$BASEDIR $DATADIR/mysql
grep mysql /etc/passwd > /dev/null
if [ $? -eq 0 ] ; then
echo -e "\E[31;5m------------存在mysql用户------------\E[0m "
userdel -r mysql
echo -e "\E[32;5m------------mysql用户已经删除------------\E[0m "
fi
useradd mysql -s /sbin/nologin
mkdir $DATADIR/mysql/{log,data,logbin} -p
cat > /etc/my.cnf <<EOF
[mysql]
port = 3306
socket = $DATADIR/mysql/data/mysql.sock
[mysqld]
port = 3306
mysqlx_port = 33060
log-bin = $DATADIR/mysql/logbin/mysql-bin
mysqlx_socket = $DATADIR/mysql/data/mysqlx.sock
basedir = $DATADIR/mysql
datadir = $DATADIR/mysql/data
socket = $DATADIR/mysql/data/mysql.sock
pid-file = $DATADIR/mysql/data/mysqld.pid
log-error = $DATADIR/mysql/log/error.log
default-authentication-plugin = mysql_native_password
log_timestamps = SYSTEM
EOF
echo -e "PATH=\$PATH:$DATADIR/mysql/bin " > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
chown -R mysql:mysql $DATADIR/mysql
cp $DATADIR/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i "s#/usr/local/mysql#$DATADIR/mysql#g" /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
cd $DATADIR/mysql
bin/mysqld --initialize --user=mysql --basedir=${DATADIR}/mysql --datadir=${DATADIR}/mysql/data --log_error=${DATADIR}/mysql/log/error.log
PW=`grep password $DATADIR/mysql/log/error.log | awk '{print $NF}'`
/etc/init.d/mysqld start > /dev/null
mysqladmin -u$ACOUNT -p$PW password $PASSWD -S $DATADIR/mysql/data/mysql.sock &> /dev/null
echo -e "\E[32;5m------------安装部署完成!!!------------\E[0m "
文章评论