• 【shell案例】CentOS7安装MySQL脚本案例


    前言

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

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

    脚本源码

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

    [root@xinsz08-18 ~]# cat mysql-install.sh  公众号【测试员小何】
    #!/bin/bash
    file=mysql57-community-release-el7-10.noarch.rpm
    mkdir -p /app
    cd /app
    if [ -f "$file" ];then
        echo "文件已存在,无需下载"
    else
        echo "正在下载所需源rpm包请稍后"
    
    wget https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
        if [ $? -eq 0 ];then
            echo "下载安装包成功,开始安装rpm包"
        else
            echo "download error,exit"
            exit 1
        fi
    
    fi
    
    
    yum localinstall *.rpm -y
    cd /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  -y
    if [ $? -eq 0 ];then
        echo "mysql 安装成功,现在开始启动"
        systemctl start mysqld
    else
       echo "mysql安装出现了问题,请排查"
       exit 2
    fi
    sql_prot=`lsof -i:3306 |wc -l`
    if [ $sql_prot -gt 0 ];then
    echo "mysql已经启动" 
    else "mysql 未启动,准备查看配置文件"
    fi
    echo "获取登陆密码"
    rm -rf /var/lib/mysql
    systemctl restart mysqld
    echo "skip-grant-tables=1" >> /etc/my.cnf
    systemctl restart mysqld
    echo "对数据库进行操作"
    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.cnf
    echo "测试登陆,登陆后可以把root密码改成你自己想要的密码"
    mysql -uroot -p123456789
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
    

    总结

    刚开始写脚本,不要在意写的好坏,能够运行,完成任务就可以了,以后在慢慢完善。千万不要一上来就开始各种函数,各种循环,容易把自己绕晕。
    欢迎关注公众号:测试员小何,领取一份300页pdf文档的Python自动化测试工程师核心知识点总结!

  • 相关阅读:
    商城项目开发(一)
    java基础
    SpringBoot笔记
    设计模式-创建型模式
    讲真的 曾惜
    Linux常用精简命令实训练习
    使用ZeroClipboard.js复制内容到剪贴板上
    浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
    jQuery mouseover与mouseenter,mouseout与mouseleave的区别
    div中的img垂直居中
  • 原文地址:https://www.cnblogs.com/TFBOYS0806/p/13578137.html
Copyright © 2020-2023  润新知