• 第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;
  • 相关阅读:
    JavaScript怎么让字符串和JSON相互转化
    golang怎么使用redis,最基础的有效的方法
    SmartGit过期后破解方法
    Mac下安装ElasticSearch
    浏览器滚动条拉底部的方法
    git 管理
    MAC远程连接服务器,不需要输入密码的配置方式
    centos6.5下使用yum完美搭建LNMP环境(php5.6) 无脑安装
    【笔记】LAMP 环境无脑安装配置 Centos 6.3
    vs2008不能创建C#项目的解决方法
  • 原文地址:https://www.cnblogs.com/bj-mr-li/p/11523013.html
Copyright © 2020-2023  润新知