• Linux使用脚本关闭数据库


    起初是linux设置了开机自启数据库,可是没建立一个新连接就启动一次,会发生冲突的问题,然后这里在启动的时候先看看有没有之前启动的,有的话就进行关闭

    1.使用进程进行关闭数据库

    话不多说直接上代码
    一般查询任务的进程就是ps -ef| grep xxx或者ps aux |grep xxx
    因为在查询一个启动的进程的时候总是会打印两个进程,所以这里使用了grep -v grep反向查询1不包含grep的进程,可是进程总是一长串我们只需要用到进行的pid就可以了,然后就使用awk '{print $2}'进行了类似截取字符串的操作

    例如:有一个文件,名字为a.tx
    awk ‘{print $2}’ a.txt结果如下
    在这里插入图片描述

    #查询mysql的进程
    pid=`ps -ef | grep mysql |grep -v grep | awk '{print $2}'`
    #这里使用$pid或者{pid}都是可以的
    echo $pid
    #这里参数必须得加上"",不然就有可能不经判断直接进行里面的操作
    if [ -n "${pid}" ]
    then
    	kill -15 $pid
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注意:
    1.shell中利用一般利用if [ -n str1 ]来判断字符串不为空
    2.如果为上述pid的情况,必须加上"",如果不加改语句就等同于if [ -n ]
    shell就会把它当成if [ str1 ]来处理-n用来是判断的自然不为空,所以就会一直为真

    语句解释
    if [ str1 = str2 ]当两个变量内容,长度相同时时为真
    if [ str1 != str2 ]当两个变量不等时为真
    if [ -n str1 ]当变量的长度大于0时为真(变量不能为空)
    if [ -z str1 ]当变量的长度为0时为真{变量为空))
    f [ str1 ]当变量不为空时为真
    内容解释
    grep -v是反向查询的意思
    grep -v grep就是不查含有gre的字段
    $2是第二个字段的意思
    print $2就是打印第二个字段
    awk ‘{print $2}’意思是一行一行的读取,空格作为分隔符,打印第二个字段

    因为怕mysql正在使用突然关闭会影响,这里使用kill -15而不是kill -9,因为kill -9是强制杀死,kill -15是安全干净的退出,不影响正在进行地,所以有时候会出现杀不死进程的情况(正常)

    2.关闭mariadb 数据库

    。termux两个都可以使用,但前提是第二个账号密码要对要设置
    可以参考这个文章进行设置:https://blog.csdn.net/weixin_45853881/article/details/126940611

    mysqladmin -u $(whoami) shutdown
    
    • 1
    mysqladmin -uroot -proot shutdown
    
    • 1

    如果不想使用kill可以把这个放到then里面

  • 相关阅读:
    centOS7集群hadoop环境搭建
    服装商城网站 毕业设计-附源码241505
    双重主要上市是反垄断之后,阿里求变的序曲?
    在 Python 中跨多个文件使用全局变量
    cv::solvePnP使用方法及注意点详解(OpenCV/C++)
    提高尼日利亚稻米产量 丰收节贸促会:国稻种芯百团计划行动
    HR人才测评,采用线上测评做春招秋招
    Pytorch人体姿态骨架生成图像
    Chrome代码分析(二)——EscapeAnalysisPhase
    Nginx+Tomcat负载均衡、动静分离
  • 原文地址:https://blog.csdn.net/weixin_45853881/article/details/127440067