二进制脚本安装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的班级。

浙公网安备 33010602011771号