作业(四)

作业(四)

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

事先准备mariadb二进制文件

#MYSQL='mariadb-10.2.31-linux-systemd-x86_64.tar.gz'
NAME='mariadb-10.2.31-linux-systemd-x86_64'
PASS=123456
#创建mysql用户
getent passwd | grep mysql &> /dev/null  
if [ $? -eq 0 ];then 
    echo "用户已存在,退出!"
    exit
else
    useradd -s /sbin/nologin -r  mysql
    echo "用户创建成功!"
fi
#创建数据目录
if [ -d /data/mysql ];then
    echo "数据库已存在,退出!"
else
    mkdir -p /data/mysql
    chown mysql:mysql /data/mysql
fi
#安装mysql所需的模块文件
yum -y install perl-Data-Dumper libaio
#解压已准备好的二进制文件
tar xvf ${NAME}.tar.gz -C /usr/local
cd /usr/local
ln -s ${NAME} mysql
chown -R root:root /usr/local/mysql/
cat > /etc/my.cnf << EOF
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
skip_name_resolve = on    
log-error=/data/mysql/mysql.log
[client]
socket=/tmp/mysql.sock
EOF
cd /usr/local/mysql
#执行脚本,指定数据文件路径,以mysql用户
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
#设置PATH变量
ln -s /usr/local/mysql/bin/* /usr/bin/
#启动脚本复制开机自启目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#启动mysqld,开机自启
chkconfig --add mysqld
service mysqld start
if [ $? -eq 0 ];then
    echo "数据库安装完成!"
else
    echo "数据库安装失败,退出!"
    exit 2
fi

#安全加固
mysql_secure_installation << EOF

y
$PASS
$PASS
y
y
y
y
EOF

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

事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”

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

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

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.00 sec)

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

MariaDB [hellodb]> select AVG(age),classid from students group by classid;
+----------+---------+
| AVG(age) | classid |
+----------+---------+
|  63.5000 |    NULL |
|  20.5000 |       1 |
|  36.0000 |       2 |
|  20.2500 |       3 |
|  24.7500 |       4 |
|  46.0000 |       5 |
|  20.7500 |       6 |
|  19.6667 |       7 |
+----------+---------+
8 rows in set (0.00 sec)

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

MariaDB [hellodb]> select classid,AVG(age) from students group by classid having AVG(age) > 30 ;
+---------+----------+
| classid | AVG(age) |
+---------+----------+
|    NULL |  63.5000 |
|       2 |  36.0000 |
|       5 |  46.0000 |
+---------+----------+
3 rows in set (0.00 sec)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值