前言

此脚本为一个学员在工作中遇到在centos7中安装mysql的问题,于是安排一个学员花了15分钟写了一个脚本,可以正常安装使用。
mysql的版本为5.7版本

此脚本涉及到安装好mysql后,日志中没有临时密码的问题,所以该学员使用了破解mysql密码登陆修改去修改密码的方法,也算是一种好方法,在工作中,能解决问题才是根本,其他的技巧都是扯淡。
虽然脚本还存在一些问题,但测试后发现可以正常安装,敢写就是一种进步。

脚本源码

因时间紧张,该学员未加注释,但我相信只要学完了shell基础的小伙伴都可以看懂,这就是一个流水账的安装方法,加了一点判断。

[root@xinsz08-18 ~]# cat mysql-install.sh #!/bin/bashfile=mysql57-community-release-el7-10.noarch.rpmmkdir -p /appcd /appif [ -f "$file" ];thenecho "文件已存在,无需下载"elseecho "正在下载所需源rpm包请稍后"wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpmif [ $? -eq 0 ];thenecho "下载安装包成功,开始安装rpm包"elseecho "download error,exit"exit 1fifiyum localinstall *.rpm -ycd /etc/yum.repos.d/

yum -y remove mariadb*echo "开始安装mysql"yum install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel -y
yum install mysql-server  -yif [ $? -eq 0 ];thenecho "mysql 安装成功,现在开始启动"systemctl start mysqldelse
   echo "mysql安装出现了问题,请排查"
   exit 2fisql_prot=`lsof -i:3306 |wc -l`if [ $sql_prot -gt 0 ];thenecho "mysql已经启动" else "mysql 未启动,准备查看配置文件"fiecho "获取登陆密码"rm -rf /var/lib/mysql
systemctl restart mysqldecho "skip-grant-tables=1" >> /etc/my.cnf
systemctl restart mysqldecho "对数据库进行操作"mysql -u root -e 'use mysql;'mysql -u root -e 'update user set password=password('123456789') where user='root' and host='localhost';'#mysql -e 'flush privileges; 'sed -i '/skip-grant-tables=1/d' /etc/my.cnfecho "测试登陆,登陆后可以把root密码改成你自己想要的密码"mysql -uroot -p123456789

####总结
刚开始写脚本,不要在意写的好坏,能够运行,完成任务就可以了,以后在慢慢完善。千万不要一上来就开始各种函数,各种循环,容易把自己绕晕。