zoukankan      html  css  js  c++  java
  • mysql安装脚本与常用用法

    1、写一个一键安装 mariadb 数据库脚本。

    #!/bin/bash
    #
    #************************************************************************************
    #Auther:            zc
    #QQ:                194679342
    #Date:              2020-09-27
    #FileName:          my.sh
    #URL:               http://www.magedu.com
    #Description:       The test script
    #Copyrignt (C):    2020 All rights reseaved
    #***********************************************************************************
    DIR=`pwd`
    NAME="mariadb-10.5.5-linux-systemd-x86_64.tar.gz"
    FULL_NAME=${DIR}/${NAME}
    PASS='magedu'
    yum -y install libaio* numactl-libs
    if id mysql ;then
        echo "用户以存在"
    else
        useradd -r  -s /bin/nologin  mysql
    
    fi
    
    if [ -f ${FULL_NAME} ] ;then
        echo "安装文件已存在"
    else
        echo "安装文件不存在"
    fi
    
    if [ -h /usr/local/mysql ];then
        echo "mysql已安装"
    else
        tar -xf /usr/local/mariadb-10.5.5-linux-systemd-x86_64.tar.gz   -C  /usr/local/
        ln -sv /usr/local/mariadb-10.5.5-linux-systemd-x86_64  /usr/local/mysql
        chown -R root:root /usr/local/mysql
    fi
    
    cat  > /etc/my.cnf  <<EOF
    
    [mysqld]
    datadir = /data/mysql
    innodb_file_per_table = on
    skip_name_resolve = on
    socket=/data/mysql/mysql.sock
    log-error=/data/mysql/mysql.log
    
    [client]
    socket=/data/mysql/mysql.sock
    EOF
    
    if [ ! -d /data/mysql ];then
        mkdir -pv /data/mysql && chown -R mysql.mysql /data/mysql   /usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysql --user=mysql
         cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
         echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
         chmod a+x  /etc/profile.d/mysql.sh
         . /etc/profile.d/mysql.sh
         chkconfig --add mysqld
         service mysqld start
    else
         echo "mysql 数据目录完成"
    fi
    echo "安装成功"
    /usr/local/mysql/bin/mysql_secure_installation  <<EOF
    y
    $PASS
    $PASS
    y
    y
    y
    y
    EOF

    2、简述Event 事件介绍以及它的优缺点

    事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”,事件调度器event_scheduler负责调用事件,它默认是关闭的。这个调度器不断地监视一个事件是否要调用, 要创建事件,必须打开调度器event_scheduler=1。

    事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于它们彼此相似,所以事件也称为临时性触发器。

    事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。

    create event 语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(event schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action ),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者 benin…end语句块,这两种情况允许我们执行多SQL。

    优点:一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能,可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用
    缺点:定时触发,不可以直接调用

    3、在 students 表中,查询年龄大于25岁,且为男性的同学的名字和年龄:

    MariaDB [hellodb]> select * from students;
    +-------+---------------+-----+--------+---------+-----------+
    | StuID | Name          | Age | Gender | ClassID | TeacherID |
    +-------+---------------+-----+--------+---------+-----------+
    |     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
    |     2 | Shi Potian    |  22 | M      |       1 |         7 |
    |     3 | Xie Yanke     |  53 | M      |       2 |        16 |
    |     4 | Ding Dian     |  32 | M      |       4 |         4 |
    |     5 | Yu Yutong     |  26 | M      |       3 |         1 |
    |     6 | Shi Qing      |  46 | M      |       5 |      NULL |
    |     7 | Xi Ren        |  19 | F      |       3 |      NULL |
    |     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
    |     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
    |    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
    |    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
    |    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
    |    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
    |    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
    |    15 | Duan Yu       |  19 | M      |       4 |      NULL |
    |    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
    |    17 | Lin Chong     |  25 | M      |       4 |      NULL |
    |    18 | Hua Rong      |  23 | M      |       7 |      NULL |
    |    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
    |    20 | Diao Chan     |  19 | F      |       7 |      NULL |
    |    21 | Huang Yueying |  22 | F      |       6 |      NULL |
    |    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
    |    23 | Ma Chao       |  23 | M      |       4 |      NULL |
    |    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
    |    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
    +-------+---------------+-----+--------+---------+-----------+
    25 rows in set (0.001 sec)


    MariaDB [hellodb]> select name,age  from students where age > 25 and gender='M';
    +--------------+-----+
    | name         | age |
    +--------------+-----+
    | Xie Yanke    |  53 |
    | Ding Dian    |  32 |
    | Yu Yutong    |  26 |
    | Shi Qing     |  46 |
    | Tian Boguang |  33 |
    | Xu Xian      |  27 |
    | Sun Dasheng  | 100 |
    +--------------+-----+
    7 rows in set (0.001 sec)

    4、在 students 表中,以 ClassID 为分组依据,查询显示每组的平均年龄

    MariaDB [hellodb]> select classid,avg(age) as 平均年龄 from students group by classid ;
    +---------+--------------+
    | classid | 平均年龄      |
    +---------+--------------+
    |    NULL |      63.5000 |
    |       1 |      20.5000 |
    |       2 |      36.0000 |
    |       3 |      20.2500 |
    |       4 |      24.7500 |
    |       5 |      46.0000 |
    |       6 |      20.7500 |
    |       7 |      19.6667 |
    +---------+--------------+
    8 rows in set (0.001 sec)
    
    MariaDB [hellodb]> select classid,avg(age) as 平均年龄 from students where classid is not null group by classid order by classid ;
    +---------+--------------+
    | classid | 平均年龄      |
    +---------+--------------+
    |       1 |      20.5000 |
    |       2 |      36.0000 |
    |       3 |      20.2500 |
    |       4 |      24.7500 |
    |       5 |      46.0000 |
    |       6 |      20.7500 |
    |       7 |      19.6667 |
    +---------+--------------+
    7 rows in set (0.000 sec)

    5、显示第4题中平均年龄大于30的分组及平均年龄

    MariaDB [hellodb]> select classid 班级,avg(age)  平均年龄  from students group by classid having  平均年龄 > 30 ;
    +--------+--------------+
    | 班级    | 平均年龄      |
    +--------+--------------+
    |   NULL |      63.5000 |
    |      2 |      36.0000 |
    |      5 |      46.0000 |
    +--------+--------------+
    3 rows in set (0.000 sec)

     

  • 相关阅读:
    Vimium -为键盘而生
    Sublime Text 3 修改配色主题【侧边框之...】
    MyBatis-Plus文档地址
    解决:电脑新建文件后需要刷新才显示
    技术书籍博客
    js获取浏览器当前窗口的高度长度
    DataGridView隐藏列用CSS实现
    判断windows操作系统平台
    iis7.5错误 配置错误
    vmware安装mac
  • 原文地址:https://www.cnblogs.com/langgeniubi/p/13740728.html
Copyright © 2011-2022 走看看