前言:本次部署使用CentOS7,可根据实际情况选择版本,部署不足之处,还请不吝赐教。
1.判断用户是否存在
#!/bin/bash
user=mysql
id $user &> /dev/null
if [ $? -ne 0 ]
then
# 新建用户
useradd $user > /data/mysql.log 2>&1
#设置密码
echo "abc12345" | passwd --stdin $user >> /data/mysql.log 2>&1
echo "1. $user用户创建成功!"
else
echo "1.$user用户已存在!"
fi
2.判断/etc/sudoers文件的执行权限
if test -x /etc/sudoers
then
echo "2.执行权限已存在!"
else
chmod u+x /etc/sudoers
ll /etc/sudoers >> mysql.log 2>&1
echo "2.执行权限添加完成!"
fi
3.判断是否$user用户的免密权限
if cat /etc/sudoers | grep "$user" >> /data/mysql.log 2>&1
then
echo "3. $user免密权限已存在!"
else
echo "$user ALL = NOPASSWD:ALL" >> /etc/sudoers
echo "3. $user免密权限添加完成!"
fi
4.修改日志文件权限
chmod 777 /data/mysql.log
5.下载MySQL8.0的rpm包
if [ ! -e "/home/$user/mysql80-community-release-el7-10.noarch.rpm" ]
then
su - ${user} -c "wget https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm >> /data/mysql.log 2>&1"
echo "4.MySQL8.0安装包下载完成!"
else
echo "4.MySQL8.0安装包已存在!"
fi
6.安装MySQL8.0的rpm包
str1=`rpm -qa | grep mysql80`
if [ -n str1 ];
then
su - ${user} -c " sudo yum -y localinstall mysql80-community-release-el7-10.noarch.rpm >> /data/mysql.log 2>&1"
echo "5.MySQL8.0安装完成!"
else
echo "5.MySQL8.0已安装!"
fi
7.安装MySQL8.0依赖包
str2=`rpm -qa | grep mysql-community-server`
if [ -n str2 ];
then
su - ${user} -c "sudo yum -y install mysql-community-server >> /data/mysql.log 2>&1"
echo "6.MySQL依赖包安装完成!"
else
echo "6.MySQL依赖包已安装!"
fi
8.启动MySQL8.0服务
su - ${user} -c "sudo systemctl start mysqld.service >> /data/mysql.log 2>&1"
if [ $? -eq 0 ];then
echo "7.MySQL8.0服务启动成功!"
else
echo "7.MySQL8.0服务启动失败,请确认!"
fi
9.还原权限
str3=`sed -n '/$user/=' /etc/sudoers`
if [ $? -eq 0 ];then
sed -i "$str3 d" /etc/sudoers
chmod u-x /etc/sudoers
else
echo "权限还原失败,请确认!"
fi
10.获取MySQL8.0初始密码
password=$(cat /var/log/mysqld.log | grep 'password' | awk -F ':' '{print $4}') >> /data/mysql.log 2>&1
if [ -n password ];
then
echo "8.MySQL8.0安装完成!"
echo "请输入初始密码并进行修改操作!"
echo "初始密码:$password"
else
echo "密码获取失败,请确认!"
fi
su - ${user} -c "mysql -u root -p"