二进制脚本安装mysql-5.6.48及mysql的相关使用

二进制安装mysql-5.6.48

安装前准备:在mysql的官方站点上下载好二进制包

二进制脚本安装mysql-5.6.48:

#!/bin/bash

groupadd -r -g 306 mysql          #提前创建好Mysql用户和组,名字可以可以不是mysql,只是习惯上一般我们还是使用的是Mysql
useradd -r -g 306 -u 306 -d /data/mysql mysql
echo "开始安装依赖包......"
yum -y install libaio perl-Data-Dumper &>/dev/null   #准备相关包文件
echo "开始解压mysql-5.6.48-linux......"
tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
echo "解压完成"
ln -s /usr/local/mysql-5.6.48-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir /data/mysql && chown -R mysql.mysql /data/mysql chown -R mysql.mysql /usr/local/mysql echo "授权完成,开始准备相关文件......" mv /etc/my.cnf /etc/my.cnf.back #不使用默认的配置文件,自己准备,这个备份可以删了 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cat > /etc/my.cnf <<EOF [mysqld] datadir=/data/mysql innodb_file_per_table=on #在mariadb5.5之后的版本中是默认值,可以不加 skip_name_resolve=on #禁止主机名解析,on为不解析 EOF cd /usr/local/mysql #这一步一定要有,不然使用不了下面的命令,会报错,它会在这个目录下寻找这个目录中bin下的一个命令 ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql &>/dev/null #之前yum下载的安装包就是这一步的相关包 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #加入开机启动项 chkconfig --add mysqld service mysqld start &>/dev/null ln -s /usr/local/mysql/bin/* /usr/bin/ systemctl start mysqld cd - &>/dev/null
rm -rf /etc/my.cnf.back echo "安装完成。"

mysql中Event事件的优缺点

 MySQL事件调度器event_scheduler负责调用事件,它默认是关闭的。这个调度器不断地监视一个事件是否要调用,要创建事件,必须打开调度器。

Event事件优点:

可以实现秒级的任务执行

 

缺点:

只能在规定的时间点触发,不在时间点上连调用的都不行

mysql的相关简单使用

提前准备好一个脚本,然后生成一个数据库:

mysql -uroot -p12345678 < hellodb_innodb.sql

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

MariaDB [hellodb]> select name,age from (select name,age,gender from students where gender = 'M') as s where s.age>25;
+--------------+-----+
| 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)

使用子查询的方式,先对students表以性别男为分组依据,查询出姓名,年纪以及班级,赋予别名"s",然后再将查询到的结果中以年龄大于25岁的,仅显示他们的姓名和年纪。

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

MariaDB [hellodb]> select classid,avg(age) from (select * from students order by classid asc) as s group by s.classid;
+---------+----------+
| ClassID | avg(age) |
+---------+----------+
|    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.000 sec)

还是使用了子查询的方式,对班级进行了一个排序,然后又过滤除了其中的班级相同的,以相同班级为条件,查询了同班中的平均年龄。

3、在上一个的基础上,显示平均年龄大于30的分组及平均年龄

MariaDB [hellodb]> select classid,avg(age) from (select * from students order by classid asc) as s group by s.classid having avg(age)>30;
+---------+----------+
| ClassID | avg(age) |
+---------+----------+
|    NULL |  63.5000 |
|       2 |  36.0000 |
|       5 |  46.0000 |
+---------+----------+
3 rows in set (0.003 sec)

在上一个的基础上,又筛选出来了平均年纪大于30的班级。

 

posted @ 2020-09-27 21:08  玉米地里拱白菜的猪  阅读(271)  评论(0)    收藏  举报