Centos7部署mysql离线脚本

Centos7部署mysql离线脚本

提前下载好Centos7版本的mysql-xxx.tar安装包
官网下载地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载mysql安装包

1、下载好后修改好脚本中变量mysql_name的值,值为下载的mysql安装包名字。
2、由于有密码安全策略过渡密码必须8位以上。
3、登陆密码没有限制但不能和过渡密码相同,脚本更改了密码安全策略等级为LOW,长度大于4,这些属性可以在脚本中自行更改。
set global validate_password_policy=LOW;
set global validate_password_policy=0;
set global validate_password_length=4;

#/bin/bash
#需要完全卸载干净mysql后才能执行
#Mysql安装过渡密码
mysql_password='cly@2020'
#Mysql登陆密码为new_password
new_password='ILoveF@2020'

#安装rzsz
yum -y install lrzsz


#2种写法`和$()
p=`rpm -qa | grep -i mysql`
q=$(find / -name mysql)
m='0'
#mysql安装包名字
mysql_name='mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar'
#检查mysql是否卸载干净
while (true)
do
if [ "${p}" ];then
echo "mysql软件包卸载不干净!"
echo "正在清理mysql残余软件包"
echo "====================="
m='1'
#mysql服务停止
echo "停止mysql服务"
systemctl stop mysqld.service
yum -y remove $(rpm -qa | grep -i mysql)
p=`rpm -qa | grep -i mysql`
echo "${p}"
fi
if [ !"${p}" ];then
 break
fi
done


while (true)
do
if [ "${q}" ];then
echo "mysql文件夹卸载不干净!"
echo "正在清理mysql残余文件夹"
echo "====================="
m='1'
rm -rf $(find / -name "mysql")
q=$(find / -name mysql)
echo "${q}"
fi
if [ !"${q}"  ];then
  break
fi
done

if [  "${m}" -ne 0  ];then
rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
chkconfig --del mysqld
echo "mysql卸载干净!"
echo "====================="
fi

#安装mysql5.7
echo "开始安装mysql"
cd /root/
mkdir software
cd  software
echo "请上传${mysql_name}"
rz
while (true)
do
if [ -e ${mysql_name} ];then
 mv ${mysql_name}  /root/software/
 break
else
 echo '传输的压缩包错误!'
 rm -rf *
 echo "请重新传输${mysql_name}压缩包"
 rz
fi
done
cd /root/software/
tar -xvf ${mysql_name}
#tar ${mysql_name}
#卸载冲突包
yum  -y remove mariadb-libs-1*
#安装 MySQL-libs RHEL兼容包
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm --force --nodeps
#安装 MySQL-client MySQL客户端程序
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm --force --nodeps
#安装perl
yum -y install perl
#避免net-tools命令异常
yum -y install -y net-tools
#安装 MySQL-server MySQL服务端程序
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps 
echo "安装完成!"
echo "============================="
echo “启动mysql”
systemctl start mysqld
echo "设置mysql开机启动"
systemctl enable mysqld
systemctl daemon-reload

#配置mysql

#跳过密码登陆
echo "lower_case_table_names=1">>/etc/my.cnf
echo "skip-grant-tables" >>/etc/my.cnf

#重启mysql
systemctl restart mysqld.service

#登陆mysql
echo "请按一下回车键!"
mysql -u root -p <<EOF
update mysql.user set authentication_string=password('${mysql_password}') where user='root';
flush privileges;
exit
EOF

#删除密码登陆
sed -i "s#skip-grant-tables##g" /etc/my.cnf

#重启mysql
systemctl restart mysqld.service

#登陆mysql带新密码
mysql --connect-expired-password  -uroot -p${mysql_password} -e "ALTER USER USER() IDENTIFIED BY '${new_password}';set global validate_password_policy=LOW;set global validate_password_policy=0;set global validate_password_length=4;ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;flush privileges;"
#赋予远程连接权限
mysql -u root -p${new_password} <<EOF
grant all privileges on *.* to 'root' @'%' identified by '${new_password}' with grant option;
flush privileges;
exit
EOF
echo "mysql配置完毕!"
echo "==============="
echo "==============="
echo "==============="
echo "==============="

#关闭防火墙
echo "关闭防火墙"
systemctl stop firewalld.service
#禁止firewall开机启动
echo "禁止firewall开机启动"
systemctl disable firewalld.service
echo "mysql安装完毕!"

原创脚本,转发请声明,若有错误之处,请多多指出,小弟一定修改。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值