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)

     

  • 相关阅读:
    angularjs的$on、$emit、$broadcast
    angularjs中的路由介绍详解 ui-route(转)
    ionic入门教程-ionic路由详解(state、route、resolve)(转)
    Cocos Creator 加载使用protobuf第三方库,因为加载顺序报错
    Cocos Creator 计时器错误 cc.Scheduler: Illegal target which doesn't have uuid or instanceId.
    Cocos Creator 构造函数传参警告 Can not instantiate CCClass 'Test' with arguments.
    Cocos Creator 对象池NodePool
    Cocos Creator 坐标系 (convertToWorldSpaceAR、convertToNodeSpaceAR)
    Cocos Creator 常驻节点addPersistRootNode
    Cocos Creator 配合Tiled地图的使用
  • 原文地址:https://www.cnblogs.com/langgeniubi/p/13740728.html
Copyright © 2011-2022 走看看