第12周作业
1、使用rpm安装mysql
到mysql官网上下载rpm包 https://dev.mysql.com/downloads/mysql/5.7.html https://dev.mysql.com/downloads/file/?id=487595 四个rmp包如下 https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-server-5.7.26-1.el7.x86_64.rpm https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-client-5.7.26-1.el7.x86_64.rpm https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-common-5.7.26-1.el7.x86_64.rpm https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-community-libs-5.7.26-1.el7.x86_64.rpm wget下载相应的包,rpm安装就可以了,如果出现警告,加--force --nodeps参数 安装顺序 common-->libs-->client-->server
2、二进制安装mariadb
二进制格式安装过程 (1) 准备用户 groupadd -r -g 306 mysql useradd -r -g 306 -u 306 -d /data/mysql mysql -s /sbin/nologin (2) 准备数据目录,建议使用逻辑卷 mkdir /data/mysql chown mysql:mysql /data/mysql 或者用install命令 install -d /data/mysql -o mysql -g mysql (3) 准备二进制程序 下载地址:https://downloads.mariadb.org/ tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local cd /usr/local ln -sv mariadb-VERSION mysql chown -R root:mysql /usr/local/mysql/ 4) 准备配置文件 mkdir /etc/mysql/ cp support-files/my-large.cnf /etc/mysql/my.cnf [mysqld]中添加三个选项: datadir = /data/mysql innodb_file_per_table = on skip_name_resolve = on 禁止主机名解析,建议使用 (5)创建数据库文件 cd /usr/local/mysql/ ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql (6)准备服务脚本,并启动服务 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld chkconfig --add mysqld service mysqld start (7)PATH路径 echo ‘PATH=/user/local/mysql/bin:$PATH’ > /etc/profile.d/mysql (8)安全初始化 /user/local/mysql/bin/mysql_secure_installation
3、编译安装mariadb
安装包 yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel 做准备用户和数据目录 useradd –r –s /sbin/nologin –d /data/mysql/ mysql mkdir /data/mysql chown mysql.mysql /data/mysql tar xvf mariadb-10.2.18.tar.gz cmake 编译安装 cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在 另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影 响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译 编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html cd mariadb-10.2.18/ cmake . \ -DCMAKE_INSTALL_PREFIX=/app/mysql \ -DMYSQL_DATADIR=/data/mysql/ \ -DSYSCONFDIR=/etc/mysql \ -DMYSQL_USER=mysql \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install 提示:如果出错,执行rm -f CMakeCache.txt 准备环境变量 echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh 生成数据库文件 cd /app/mysql/ scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql 准备配置文件 cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf 准备启动脚本 cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld 启动服务 chkconfig --add mysqld ;service mysqld start
4、students表的数据,实现下面的需求,写出sql:
MariaDB [db1]> select * from students;
+—-+——–+——-+——-+——+——-+
| id | name | phone | score | swx | class |
+—-+——–+——-+——-+——+——-+
| 1 | adc | 110 | 86 | m | 1 |
| 2 | zhou | NULL | 80 | f | 1 |
| 3 | fei | NULL | 100 | f | 2 |
| 4 | lin | NULL | 88 | m | 2 |
| 5 | wang | 1000 | 99 | m | 2 |
| 6 | 飞哥 | 10000 | 99 | m | 2 |
+—-+——–+——-+——-+——+——-+
1)在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄
select name,age from students where age>25 and swx='m';
2)以ClassID为分组依据,显示每组的平均年龄
select class,ave(age) from students group by class;
3)显示第2题中平均年龄大于30的分组及平均年龄
select class,avg(age) from students group by class having avg(age)>30;
4)显示以L开头的名字的同学的信息
select name from student where name like 'L%';
5)显示TeacherID非空的同学的相关信息
select * from students where teacherid is not null;