mysql
实现脚本安装mariadb-10.5.5
#!/bin/bash
#
#********************************************************************
#Author: llliuhuiii
#QQ: 1694993508
#Date: 2020-09-26
#FileName: install_mariadb10.5.5.sh
#URL: http://www.lianlianlianlian.cn
#Description: The test script
#Copyright (C): 2020 All rights reserved
#********************************************************************
DIR=`pwd`
NAME="mariadb-10.5.5-linux-x86_64.tar.gz"
FULL_NAME=${DIR}/${NAME}
DATA_DIR="/data/mysql"
yum -y install libaio numactl-libs > /dev/null
echo "
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock
" > /etc/my.cnf
if [ -f ${FULL_NAME} ];then
echo "安装文件存在"
else
echo "安装文件不存在"
exit 3
fi
if [ -h /usr/local/mysql ];then
echo "mysql 已经安装"
exit 3
else
tar xf ${FULL_NAME} -C /usr/local/
ln -s /usr/local/mariadb-10.5.5-linux-x86_64/ /usr/local/mysql > /dev/null
if id mysql;then
echo "mysql 用户已经存在"
else
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
fi
if id mysql;then
chown -R root.root /usr/local/mysql/
if [ ! -d /data/mysql ];then
mkdir -p /data/mysql && chown -R mysql.mysql /data/mysql > /dev/null
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/ > /dev/null
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld > /dev/null
chmod +x /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/* /usr/bin/ &> /dev/null
chkconfig --add mysqld
service mysqld start
else
echo "mysql数据目录已经存在"
exit 3
fi
fi
fi
2.简述Event事件介绍以及它的优缺点
事件是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。
事件和触发器类似,都是在某些事情发生的时候启动,当数据库上启动一条语句时候,触发器就启动了,而事件是根据调度事件来启动的。由于它们彼此相似,所以事件也称为临时性触发器。事件取代了原先只能由操作系统的计划任务来执行的工作,而且mysql的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
事件的优缺点
优点:一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能,可以实现每秒钟执行一个任务,这在一些实时性要求较高的环境下就非常实用
缺点:定时触发,不可直接调用
3、在 students 表中,查询年龄大于25岁,且为男性的同学的名字和年龄:
select name,age from students where age>25 and gender='M';
4、在 students 表中,以 ClassID 为分组依据,查询显示每组的平均年龄
select ClassID,avg(age) as avg_age from students group by ClassID;
5、显示第2题中平均年龄大于30的分组及平均年龄
select ClassID,avg(age) as avg_age from students group by ClassID having avg_age>30;