1、写一个一键安装 mariadb 数据库的脚本。
- 安装mariadb-10.2.31版本
- centos7
#!/bin/bash#NAME="mariadb-10.2.31-linux-systemd-x86_64.tar.gz"MARIADB='mariadb-10.2.31-linux-systemd-x86_64'BASEDIR='/usr/local/mysql'PASSWORD='123456'echo "开始安装${MARIADB}..."#yum install libaio numactl-libs &> /dev/nullif id mysql &> /dev/null ;thenecho "mysql用户已经创建,"elseuseradd -r -s /sbin/nologin mysqlecho "mysql用户创建成功"fiecho "正在解压二进制包,请稍等..."tar xf $NAME -C /usr/local && echo "解压完成!" || { echo "解压失败,自动退出" ; exit ; }echo "准备数据库安装相关文件"sleep 1ln -s /usr/local/$MARIADB $BASEDIRchown -R mysql:mysql $BASEDIRecho 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.shsource /etc/profile.d/mysql.shcp /etc/my.cnf{,.bak}cat > /etc/my.cnf <<EOF[mysqld]datadir=/data/mysqlskip_name_resolve=1socket=/data/mysql/mysql.socklog-error=/data/mysql/mysql.logpid-file=/data/mysql/mysql.pid[client]socket=/data/mysql/mysql.sockEOFecho "数据库安装文件准备完成,正在生成数据库文件..."sleep 1cd $BASEDIRbash scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql --basedir=$BASEDIR &> /dev/nullif [ $? = 0 ];thenecho "数据库文件生成成功,正在启动..."elseecho "数据库文件生成失败,自动退出!"exitficp support-files/systemd/mariadb.service /etc/systemd/system/systemctl daemon-reloadif systemctl start mariadb ;thenecho "数据库启动成功,正在执行安全加固脚本..."elseecho "数据库启动失败,自动退出"exitfiln -s /data/mysql/mysql.sock /tmp/mysql.sockbash $BASEDIR/bin/mysql_secure_installation &> /dev/null <<EOFy$PASSWORD$PASSWORDyyyyEOFecho "${MARIADB}已经安装完成"
2、简述Event 事件介绍以及它的优缺点
Event介绍:event就是事件的意思,它是MySQL在相应的时刻调用的过程式数据库函数,一个事件可以调用一次,也可以周期性启动;它取代了操作系统中的计划任务而且比计划任务更精确,能够达到秒级
优点:数据的定时性操作不需要依赖外部程序,能够直接使用数据库本身提高的功能,能够精准到每秒执行一次任务,而操作系统中的计划任务,比如(cron)也只能达到每分钟执行一次任务
缺点:定时性触发任务,无法直接调用这项功能
3、在 students 表中,查询年龄大于25岁,且为男性的同学的名字和年龄:
select name,gender,age from students where age > 25;
4、在 students 表中,以 ClassID 为分组依据,查询显示每组的平均年龄
select classid,avg(age) from students group by classid;
5、显示第2题中平均年龄大于30的分组及平均年龄
select classid,avg(age) from students group by classid having avg(age)>30;

