当前位置: 首页 > news >正文

MySQL OCP888题解044-从服务器上导入mysql模式数据后的权限问题

文章目录

  • 1、原题
    • 1.1、英文原题
    • 1.2、中文翻译
    • 1.3、答案
  • 2、题目解析
    • 2.1、题干解析
    • 2.2、选项解析
  • 3、知识点
    • 3.1、知识点1:mysqldump的--flush-privileges选项
    • 3.2、知识点2:mysqldump的--all-databases选项
      • 3.3、知识点3:mysqldump默认不转储的内容
  • 4、实验
    • 4.1、实验1
      • 4.1.1、实验目的
      • 4.1.2、实验前准备
      • 4.1.3、实验步骤
      • 4.1.4、实验结论
  • 5、总结

1、原题

1.1、英文原题

You have just created a replication slave from a backup of the master made with mysqldump:
mysqldump -u backup -p --all-databases > /backups/mysql.sql
You try to log in to the slave with the application user, but fail as follows:
Mysql -u application -p
ERROR 1045 (28000): Access denied for user ‘application’@‘localhost’ (using password: YES)
The login works on the master.
Which two changes to the process can fix the issue?
A、After the restore, log in to the database and execute FLUSH PRIVILEGES.
B、Add a second dump for the “mysql” database; --all-databases does not include it.
C、Use the --grants option to include GRANT statements in the dump.
D、Use the --flush-privileges with mysqldump.

1.2、中文翻译

您刚刚从使用mysqldump创建的主服务器备份创建了一个复制从属服务器:
mysqldump -u backup -p --all-databases > /backups/mysql.sql
您尝试使用应用程序用户登录从属服务器,但失败如下:
Mysql -u application -p
ERROR 1045 (28000): Access denied for user ‘application’@‘localhost’ (using password: YES)
对进程的哪两项更改可以解决问题?
A、 还原后,登录数据库并执行FLUSH PRIVILEGES。
B、 Add a second dump for the “mysql” database; --all-databases does not include it.
C、 使用–grants选项在转储中包含GRANT语句。
D、 对mysqldump使用–flush-privileges选项

1.3、答案

A、D

2、题目解析

本题考察mysqldump进行转储备份的细节。

2.1、题干解析

2.2、选项解析

  1. 因为mysql的user表被导入,但是user表通过update/insert的权限无法立刻生效,需要FLUSH PRIVILEGES。所以选项A正确。
  2. 当导出"mysql"数据库时,可以加上–flush-privileges选项,这样恢复数据时可以让数据生效。所以选项D正确。

3、知识点

3.1、知识点1:mysqldump的–flush-privileges选项

在转储"mysql"数据库(包含权限表)时,要添加一个FLUSH PRIVILEGES语句,恢复时才能正确恢复,而且恢复时也需要足够的权限来执行该语句。

官方参考文档

3.2、知识点2:mysqldump的–all-databases选项

mysqldump默认情况下指定哪个数据库就只导出哪个数据库,如下所示:

mysqldump world > world.sql

当使用了–all-databases选项,mysqlpump会转储所有数据库(除了mysqlpump限制中指出的某些例外),包括"mysql"数据库。

mysqlpump --all-databases

3.3、知识点3:mysqldump默认不转储的内容

  • mysqlpump默认不转储INFORMATION_SCHEMA、Performance_schema和sys模式。要转储其中任何一个,请在命令行中明确地命名它们。你也可以用 --databases 或 --include-databases 选项命名它们。
  • mysqlpump不转储InnoDB CREATE TABLESPACE语句。

4、实验

4.1、实验1

4.1.1、实验目的

1、mysqldump --all-databases会导出哪些数据库,会导出mysql模式的哪些表。

4.1.2、实验前准备

已安装并正常运行的MySQL5.7

4.1.3、实验步骤

  1. 使用root用户登录,创建一个用户名很特殊的用户,方便后面的搜索,用户名为ixidixixhspxzvwy:
mysql> CREATE USER ixidixixhspxzvwy IDENTIFIED BY '000000';
  1. 创建一个名字很特殊的数据库,方便后面的搜索,数据库名为nsfduapthkiu,库内创建一张名字特殊的表,表名为eahmhoioynvt,插入几条测试数据。
mysql> create database nsfduapthkiu;
mysql> use nsfduapthkiu;
mysql> create table eahmhoioynvt(id INT NOT NULL PRIMARY KEY, name VARCHAR(10));
mysql> INSERT INTO eahmhoioynvt VALUES(1,"1"),(2,"2"),(3,"c");
  1. 将新创建的库授权给用户ixidixixhspxzvwy
GRANT ALL PRIVILEGES ON nsfduapthkiu.* TO ixidixixhspxzvwy; 
  1. 查看当前库有哪些模式,发现除了自建的nsfduapthkiu模式,还有information_schema、mysql、performance_schema和sys这几个模式。
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nsfduapthkiu       |
| performance_schema |
| sys                |
  1. 查看mysql模式下有哪些表,发现共31张表
mysql> USE mysql
mysql> SHOW TABLES;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
  1. 退出mysql会话,回到Linux界面,使用mysqldump --all-databases做备份:
$ mysqldump --all-databases > all_databases.sql
  1. 对all_databases.sql进行搜索"CREATE DATABASE /!32312 IF NOT EXISTS/",发现确实会导出两个模式,即mysql模式和自建的模式nsfduapthkiu:
......
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8 */;
......
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `nsfduapthkiu` /*!40100 DEFAULT CHARACTER SET utf8 */;
......
  1. 对all_databases.sql进行搜索用户名ixidixixhspxzvwy,发现确实会导出user表:
$ cat all_databases.sql | grep ixidixixhspxzvwy
INSERT INTO `user` VALUES
......
('%','ixidixixhspxzvwy','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'mysql_native_password','*032197AE5731D4664921A6CCAC7CFCE6A0698693','N','2022-12-09 02:35:38',NULL,'N');
  1. 再仔细查看all_databases.sql,会发现mysql模式的31张表都被导出了。

4.1.4、实验结论

  1. mysqldump --all-databases会导出除了information_schema、performance_schema和sys这三个模式以外的所有模式的所有表,包括mysql模式的所有表。

5、总结

  1. mysqldump --all-databases会导出除了information_schema、performance_schema和sys这三个模式以外的所有模式的所有表,包括mysql模式的所有表。
  2. 如果想让mysql授权信息在导入后立即生效,则导出时要加上–flush-privileges选项,或者在导入后登录再执行FLUSH PRIVILEGES。

相关文章:

MySQL OCP888题解044-从服务器上导入mysql模式数据后的权限问题

文章目录1、原题1.1、英文原题1.2、中文翻译1.3、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:mysqldump的--flush-privileges选项3.2、知识点2:mysqldump的--all-databases选项3.3、知识点3:mysqldump默认不转储的内容…...

实战小项目之视频监控(1-2)

实战小项目之视频监控(1-2) Nginx 移植 前面也给大家提到了,我们可以使用 Nginx 来搭建 RTMP 流媒体服务器,譬如你可以在一台公网 IP 主 机上搭建流媒体服务器,当然,笔者并没有这个条件;这里我…...

人工智能基础--AI作业1-ML基础

1.监督学习和无监督学习都是机器学习中常用的方法。监督学习是一种机器学习方法,其中机器学习算法根据给定的输入数据和其对应的输出标签进行训练,以学习如何预测新的输入数据的输出标签。简单来说,监督学习就是通过已知的数据进行学习&#…...

关于JS中this对象指向问题总结

一、前言 关于JS中this对象指向问题,相信做过项目的小伙伴多多少少都会遇到过,明明感觉代码写的没问题,可是运行的时候,就会报错,比如报错 xxx is not a function。 我最近也遇到了,百度学习了不少前辈对于…...

Codeforces Round 855 (Div. 3) A-E2

比赛链接:Dashboard - Codeforces Round 855 (Div. 3) - Codeforces A:模拟 题意:给定一个字符串,问这个字符串是不是猫叫。定义是猫叫得字符串: 1:必须由大写或小写得M(m),E&…...

Spark Yarn 运行环境搭建

文章目录Spark Yarn 运行环境搭建1、解压缩文件2、修改配置环境文件3、配置历史服务器Spark Yarn 运行环境搭建 1、解压缩文件 将spark3.2.3的压缩包上传到 linux /opt/software 目录下 输入命令: tar -zxvf spark-3.2.3-bin-hadoop3.2-scala2.13.tgz -C /opt/ 解…...

SpringMVC 页面跳转指南:转发和重定向的实现与比较

SpringMVC 是一款非常流行的 Java Web 框架,它提供了丰富的特性和功能,使得开发者可以轻松地开发 Web 应用程序。其中,转发和重定向是 SpringMVC 中非常常见的两个操作,它们可以用于控制请求的流转和页面的跳转。本文将深入探讨 S…...

ModStartCMS v5.9.0 后台浅色模式,系统样式升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…...

2020蓝桥杯真题反倍数 C语言/C++

题目描述 给定三个整数 a,b,c,如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍,则这个数称为反倍数。 请问在 1 至 n 中有多少个反倍数。 输入描述 输入的第一行包含一个整数 n。 第二行包含三个整数a,b,c,相邻两个数之…...

PTA:L1-025 正整数A+B、L1-026 I Love GPLT、L1-027 出租(C++)

目录 L1-025 正整数AB 问题描述: 实现代码: L1-026 I Love GPLT 问题描述: 实现代码: L1-027 出租 问题描述: 实现代码: 原理思路: 出租那道题有点意思哈 L1-025 正整数AB 问题描述…...

状态机的Go语言实现版本

一、状态机 1. 定义 有限状态机(Finite-state machine, FSM),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。 2. 组成要素 现态(src state):事务当前所处的状…...

第2章 线程安全与共享资源竞争

第2章 线程安全与共享资源竞争 2.1 synchronized同步介绍 synchronized要解决的是共享资源冲突的问题。当共享资源被任务使用时,要对资源提前加锁。所有任务都采用抢占模式,即某个任务会抢先对共享资源加上第一把锁。如果这是一个排他锁,…...

77. writerows写入多行

文章目录1. 目标任务2. 准备工作3. writerow单行写入4. writerows多行写入5. a以追加的模式写入值6. 总结1. 目标任务 新建【各班级成绩】文件夹; 在该文件夹下新建一个【1班成绩单.csv】文件; 在该文件中写入下面的内容: 成绩 姓名 刘一…...

STM32MP157-Linux输入设备应用编程-多点触摸屏编程

文章目录前言多点触摸屏tslib库简介tslib库移植tslib库函数使用打开触摸屏设备配置触摸屏设备打开并配置触摸屏设备读取触摸屏设备多点触摸屏程序编写触点数据结构体定义事件定义计算触点数量判断单击、双击判断长按、移动判断放大、缩小外部调用代码流程图(草图&am…...

mybatis-plus的一般实现过程(超详细)

MyBatis-Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上提供了许多实用的功能,如分页查询、条件构造器、自动填充等。下面是 MyBatis-Plus 的完整代码实现流程: ①、引入 MyBatis-Plus 依赖 在 Maven 中,可以通过以下方式引入 …...

Spark(5):RDD概述

目录 0. 相关文章链接 1. 什么是RDD 2. RDD核心属性 3. 执行原理 0. 相关文章链接 Spark文章汇总 1. 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类&#x…...

面向对象 - 继承

Hello , 各位同学朋友大家好啊, 今天给大家分享的技术呢, 是面向对象三大特征之一的继承,我们今天主要按照以下几个点, 展开继承的讲解。目录 :* 继承的介绍* 继承的好处和弊端* 继承中成员访问特点 - 成员变量* 继承中成员访问特点 - 成员方法* 方法重写* 继承中成…...

计算机网络的166个概念你知道几个 第十二部分

计算机网络安全安全通信的四大要素:机密性、保温完整性、端点鉴别和运行安全性。机密性:报文需要在一定程度上进行加密,用来防止窃听者截取报文。报文完整性:在报文传输过程中,需要确保报文的内容不会发生改变。端点鉴…...

【RabbitMQ】RabbitMQ各版本的兼容性与技术支持时限

今天在研究RabbitMQ的监控时,发现这个消息队列软件的版本真的很令人崩溃,版本众多,且组件之间还存在版本的兼容性,此外各个组件还对操作系统存在兼容性关系。为了帮大家节省一些查阅官方文档的时间,我把官方文档里面涉…...

【Git】P5 Git 远程仓库(3)pull 发生冲突

pull 发生冲突冲突在什么场景下发生?为什么要先 pull 再 push构建一个冲突场景初始开始操作:程序员2:程序员1:程序员2:发生冲突:查看冲突:解决冲突:冲突在什么场景下发生&#xff1f…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...