• linux高级作业


    作业需求

    1、openEuler 二进制方式安装MySQL 8.0.x。
    二、备份数据库
    3.备份数据库school到/backup目录
    4.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库
    5.直接将MySQL数据库压缩备份

    第一题

    1、openEuler 二进制方式安装MySQL 8.0.x。

    1. #首先先进行二进制包的下载
    2. wget -c https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
    3. #建立用户和所属的组
    4. [root@localhost ~]# groupadd -g 27 -r mysql
    5. [root@localhost ~]# useradd -u 27 -g 27 -c 'MySQL Se/sbin/nologin mysql
    6. #将二进制安装包进行解压缩,并且创建一个软连接文件
    7. [root@localhost ~]# tar xf mysql-8.0.28-linux-glibc2ar.xz -C /usr/local/
    8. [root@localhost ~]# ln -sv /usr/local/mysql-8.0.28-l12-x86_64/ /usr/local/mysql
    9. '/usr/local/mysql' -> '/usr/local/mysql-8.0.28-linux86_64/'
    10. [root@localhost ~]# cd /usr/local/mysql
    11. [root@localhost mysql]# mkdir mysql-files
    12. #给mysql赋予权限
    13. [root@localhost mysql]# chown mysql:mysql mysql-file
    14. [root@localhost mysql]# chmod 750 mysql-files
    15. #将mysql进行初始化
    16. [root@localhost mysql]# bin/mysqld --initialize --user=mysql
    17. [root@localhost mysql]# bin/mysql_ssl_rsa_setup
    18. #生成密钥对,mysql进行连接
    19. [root@localhost mysql]# bin/mysqld_safe --user=mysql & #mysql命令行启动指令
    20. #指定为安全启动,登录用户为mysql在后台启动

    进行玩初始化之后我们可以直接看到mysql生成的随机登录密码

    1. #配置环境变量
    2. [root@localhost mysql]# vi /etc/profile.d/mysql.sh
    3. export PATH=$PATH:/usr/local/mysql/bin/
    4. #尝试登录
    5. [root@localhost mysql]# mysql -u root -p 'aopVqGH2YG<>'
    6. mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
    7. #报错并缺少依赖
    8. 官方手册指导
    9. [root@localhost mysql]# yum install ncurses-compat-libs
    10. #再次登录
    11. [root@localhost mysql]# mysql -u root -p
    12. Enter password:
    13. #等录成功后修改密码
    14. mysql> alter user root@localhost identified by 'Mysql@123';
    15. Query OK, 0 rows affected (0.02 sec)

    使用命令登录的不方便我们可以参考官方文档所给来进行操作

    1. #首先先结束mysql进程(可以使用kill或者mysqladmin)
    2. [root@localhost mysql]# mysqladmin -uroot -p shutdown
    3. Enter password:
    4. 2024-01-23T07:01:01.605185Z mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
    5. [1]+ Done bin/mysqld_safe --user=mysql
    6. #提供服务脚本
    7. [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
    8. [root@localhost mysql]# chkconfig --add mysqld
    9. #提供配置文件(由于二进制安装没有my.cnf和my.cnf.d文件)
    10. [root@node1 etc]# scp /etc/my.cnf 192.168.75.42:/etc/
    11. [root@node1 etc]# scp -r /etc/my.cnf.d/ 192.168.75.42:/etc/
    12. [root@localhost mysql]# vi /etc/my.cnf
    13. basedir=/usr/local/mysql/
    14. datadir=/usr/local/mysql/data/
    15. socket=/tmp/mysql.sock
    16. log-error=/usr/local/mysql/data/mysqld.log
    17. pid-file=/usr/local/mysql/data/mysqld.pid

    第二题

    备份数据库

    1. mysql> create database school;
    2. mysql> use school
    3. Database changed
    4. mysql> CREATE TABLE student (
    5. -> id INT(10) NOT NULL UNIQUE PRIMARY KEY ,
    6. -> name VARCHAR(20) NOT NULL ,
    7. -> sex VARCHAR(4) ,
    8. -> birth YEAR,
    9. -> department VARCHAR(20) ,
    10. -> address VARCHAR(50)
    11. -> );
    12. Query OK, 0 rows affected, 1 warning (0.01 sec)
    13. mysql> CREATE TABLE score (
    14. -> id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,
    15. -> stu_id INT(10) NOT NULL ,
    16. -> c_name VARCHAR(20) ,
    17. -> grade INT(10)
    18. -> );
    19. Query OK, 0 rows affected, 3 warnings (0.02 sec)
    20. mysql> INSERT INTO student VALUES( 901,'张老大', ' 男',1985,'计算机系', '北京市海淀区');
    21. ®机系', '湖南省衡阳市');Query OK, 1 row affected (0.00 sec)
    22. mysql> INSERT INTO student VALUES( 902,'张老二', '',1986,'中文系', '北京市昌平区');
    23. Query OK, 1 row affected (0.01 sec)
    24. mysql> INSERT INTO student VALUES( 903,'张三', '',1990,'中文系', '湖南省永州市');
    25. Query OK, 1 row affected (0.00 sec)
    26. mysql> INSERT INTO student VALUES( 904,'李四', '',1990,'英语系', '辽宁省阜新市');
    27. Query OK, 1 row affected (0.00 sec)
    28. mysql> INSERT INTO student VALUES( 905,'王五', '',1991,'英语系', '福建省厦门市');
    29. Query OK, 1 row affected (0.01 sec)
    30. mysql> INSERT INTO student VALUES( 906,'王六', '',1988,'计算机系', '湖南省衡阳市');
    31. Query OK, 1 row affected (0.00 sec)
    32. mysql> INSERT INTO score VALUES(NULL,901, '计算机',98);
    33. RT INTO score VALUES(NULL,904, '计算机',70);
    34. INSERT INTO score VALUES(NULL,904, '英语',92);
    35. INSERT INTO score VALUES(NULL,905, '英语',94);
    36. INSERT INTO score VALUES(NULL,906, '计算机',90);
    37. INSERT INTO score VALUES(NULL,906, '英语',85);Query OK, 1 row affected (0.00 sec)
    38. mysql> INSERT INTO score VALUES(NULL,901, '英语', 80);
    39. Query OK, 1 row affected (0.01 sec)
    40. mysql> INSERT INTO score VALUES(NULL,902, '计算机',65);
    41. Query OK, 1 row affected (0.00 sec)
    42. mysql> INSERT INTO score VALUES(NULL,902, '中文',88);
    43. Query OK, 1 row affected (0.00 sec)
    44. mysql> INSERT INTO score VALUES(NULL,903, '中文',95);
    45. Query OK, 1 row affected (0.00 sec)
    46. mysql> INSERT INTO score VALUES(NULL,904, '计算机',70);
    47. Query OK, 1 row affected (0.01 sec)
    48. mysql> INSERT INTO score VALUES(NULL,904, '英语',92);
    49. Query OK, 1 row affected (0.00 sec)
    50. mysql> INSERT INTO score VALUES(NULL,905, '英语',94);
    51. Query OK, 1 row affected (0.00 sec)
    52. mysql> INSERT INTO score VALUES(NULL,906, '计算机',90);
    53. Query OK, 1 row affected (0.01 sec)
    54. mysql> INSERT INTO score VALUES(NULL,906, '英语',85);
    55. Query OK, 1 row affected (0.00 sec)

    2.备份数据库school到/backup目录

    1. #创建backup目录
    2. [root@localhost ~]# mkdir /backup
    3. [root@localhost ~]# cd /backup
    4. #由题目可知需要将数据库school备份在/backup
    5. [root@localhost backup]# mysqldump --opt -B -uroot -p school > school.sql

    可以查看到school.sql脚本文件说明备份成功

    最后时间为备份时间,也可作为我们完成备份的标志

    3.备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库

    [root@localhost backup]# mysqldump -u root -p -B school --set-gtid-purged=OFF > /backup/school_`date +%F`.sql
    

    4.直接将MySQL数据库压缩备份

    1. [root@localhost backup]# mysqldump -u root -p -B -A --set-gtid-purged=OFF | gzip > /backup/totle_`date +%F`.sql.gz
    2. 因为是整个数据库所以加上-A并且在后面修改后缀

  • 相关阅读:
    MySQL 事务常见面试题总结 | JavaGuide 审核中
    12款爆款项目管理工具推荐
    clusterProfiler包学习
    房屋信贷违约风险竞争(kaggle)系列1-数据源介绍
    华为机试 - TLV解析Ⅰ
    dataX 入门指南
    2022 ICPC Gran Premio de Mexico 1ra Fecha (B、D、E、F)
    Spring Cloud Netflix 之 Eureka
    【开源】SpringBoot框架开发固始鹅块销售系统
    我的创作纪念日
  • 原文地址:https://blog.csdn.net/2202_76007104/article/details/136173387