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、选项解析
- 因为mysql的user表被导入,但是user表通过update/insert的权限无法立刻生效,需要FLUSH PRIVILEGES。所以选项A正确。
- 当导出"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、实验步骤
- 使用root用户登录,创建一个用户名很特殊的用户,方便后面的搜索,用户名为ixidixixhspxzvwy:
mysql> CREATE USER ixidixixhspxzvwy IDENTIFIED BY '000000';
- 创建一个名字很特殊的数据库,方便后面的搜索,数据库名为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");
- 将新创建的库授权给用户ixidixixhspxzvwy
GRANT ALL PRIVILEGES ON nsfduapthkiu.* TO ixidixixhspxzvwy;
- 查看当前库有哪些模式,发现除了自建的nsfduapthkiu模式,还有information_schema、mysql、performance_schema和sys这几个模式。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| nsfduapthkiu |
| performance_schema |
| sys |
- 查看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 |
- 退出mysql会话,回到Linux界面,使用mysqldump --all-databases做备份:
$ mysqldump --all-databases > all_databases.sql
- 对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 */;
......
- 对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');
- 再仔细查看all_databases.sql,会发现mysql模式的31张表都被导出了。
4.1.4、实验结论
- mysqldump --all-databases会导出除了information_schema、performance_schema和sys这三个模式以外的所有模式的所有表,包括mysql模式的所有表。
5、总结
- mysqldump --all-databases会导出除了information_schema、performance_schema和sys这三个模式以外的所有模式的所有表,包括mysql模式的所有表。
- 如果想让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:发生冲突:查看冲突:解决冲突:冲突在什么场景下发生?…...

关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解
关于世界坐标系,相机坐标系,图像坐标系,像素坐标系的一些理解前言一、各坐标系的含义二、坐标系转换1.世界坐标系与相机坐标系(旋转与平移)2.相机坐标系与图像坐标系(透视)3.图像坐标系与像素坐…...

企业防护ddos的注意事项,你知道吗?
DDoS,分布式拒绝服务攻击,是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。在当下,DDoS 攻击是非常常见的一种攻击方式,大…...

RocketMQ如何测试
RocketMQ如何测试MQ简介RocketMQRocketMQ测试点MQ简介 MQ:Message Queue,即消息队列,是一种应用程序之间的消息通信,简单理解就是A服务不断的往队列里发布信息,另一服务B从队列中读取消息并执行处理,消息发…...

SpringBoot中的bean注入方式和原理介绍
Spring Boot是一个非常流行的Java框架,它可以帮助开发者快速地构建高效、健壮的应用程序。其中一个重要的功能就是依赖注入,也就是将一个对象注入到另一个对象中,以便它们可以相互协作。在Spring Boot中,依赖注入是通过bean实现的…...

ESP32设备驱动-RFID-RC522模块驱动
RFID-RC522模块驱动 文章目录 RFID-RC522模块驱动1、RFID-RC522介绍2、硬件准备3、软件准备4、驱动实现1、RFID-RC522介绍 基于 NXP 的 MFRC522 IC 的 RC522 RFID 模块通常带有一个 RFID 卡标签和具有 1KB 内存的密钥卡标签。 最重要的是,它可以写一个标签,这样你就可以在里…...

SMETA认证有些客户是需要做窗口期的
【SMETA认证有些客户是需要做窗口期的】SMETA审核是常见的社会责任审核标准之一,中文全称为“Sedex 会员道德贸易审核”,英文为“Sedex Members Ethical Trade Audit”. SEDEX 官网:网页链接Sedex 作为目前市场流行的CSR审核标准,…...

面向对象设计模式:创建型模式之原型模式
文章目录一、引入二、代理模式,Prototype Pattern2.1 Intent 意图2.2 Applicability 适用性2.3 类图2.4 应用实例:使用下划线或消息框展示字符串2.4 应用实例:JDK java.lang.Object java.lang.Cloneable一、引入 二、代理模式,Pr…...

三维重建(单目、双目、多目、点云、SFM、SLAM)
1 相机几何与标定1.1 相机模型中的坐标系1.2 四种坐标系之间的转换1.3 相机内参1.4 相机标定2 单目三维重建2.1 NeuralRecon三维重建定义 在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由于单视频的信息不完全,因此三维重建需要利用经验知识. 而…...

Java中的final和权限修饰符
目录 final 常量 细节: 权限修饰符 Java权限修饰符用于控制类、方法、变量的访问范围。Java中有四种权限修饰符: 权限修饰符的使用场景: final 方法 表明该方法是最终方法,不能被重写。类 表明该类是最终类,不能被继…...

MySQL的基本语句(SELECT型)
基本MySQL语句SELECTSELECT FROM 列的别名去除重复行空值着重号算术运算符加法( )减法( - )乘法( * )除法( / 或DIV)求模( % 或MOD)比较运算符等于( )安全等于( <> )不等于( ! 或 <…...