MySQL 8.0 OCP 1Z0-908 题目解析(39)
题目156
Choose two.
You have an installation of MySQL 8 on Oracle Linux.
Consider the outputs:
mysql> SHOW GLOBAL VARIABLESWHERE Variable_name = 'tmpdir'OR Variable_name = 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
+----------------+----------+
2 rows in set (0.01 sec)shell> cd /var/lib/mysql
shell> ls -l | grep temp
drwxr-x---. 2 mysql mysql 4096 Dec 11 14:05 #innodb_temp
Which statement is true about disk temporary tables for this installation?
○ A) Only internal temporary tables from the optimizer will be created in tmpdir.
○ B) Temporary tables are created in tmpdir only after they reach tmp_table_size.
○ C) Temporary tables are created in tmpdir only if configured to use MyISAM.
○ D) Temporary tables will use the InnoDB temporary tablespace located in datadir.
○ E) Temporary tables will use the InnoDB temporary tablespace located in /tmp.
翻译
选择两个答案。
你在 Oracle Linux 上安装了 MySQL 8。
查看输出:
mysql> SHOW GLOBAL VARIABLESWHERE Variable_name = 'tmpdir'OR Variable_name = 'tmp_table_size';
+----------------+----------+
| Variable_name | Value |
+----------------+----------+
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
+----------------+----------+
2 rows in set (0.01 sec)shell> cd /var/lib/mysql
shell> ls -l | grep temp
drwxr-x---. 2 mysql mysql 4096 Dec 11 14:05 #innodb_temp
关于此安装的磁盘临时表,哪个陈述是正确的?
○ A) 只有优化器的内部临时表会在 tmpdir 中创建。
○ B) 临时表只有在达到 tmp_table_size 大小时才会在 tmpdir 中创建。
○ C) 临时表只有在配置为使用 MyISAM 时才会在 tmpdir 中创建。
○ D) 临时表将使用位于 datadir 中的 InnoDB 临时表空间。
○ E) 临时表将使用位于 /tmp 中的 InnoDB 临时表空间。
解析和答案
- 选项A:除了优化器的内部临时表,其他临时表也可能在
tmpdir
中创建,A错误。 - 选项B:
tmp_table_size
是内存临时表的大小限制,当内存临时表超过该大小时会转为磁盘临时表,磁盘临时表的创建位置与tmp_table_size
没有直接的“只有达到才创建”的关系,B错误。 - 选项C:InnoDB 也可以创建磁盘临时表,不是只有 MyISAM,C错误。
- 选项D:从
ls
输出看到在datadir
(/var/lib/mysql
)下有#innodb_temp
目录,这是 InnoDB 临时表空间的位置,所以临时表会使用位于datadir
中的 InnoDB 临时表空间,D正确。 - 选项E:InnoDB 临时表空间在
datadir
下,不是/tmp
,E错误。
所以答案是D。
知识点总结
- MySQL临时表配置:了解 MySQL 中与临时表相关的配置变量,如
tmpdir
(指定磁盘临时表的存储目录 )和tmp_table_size
(指定内存临时表的最大大小,超过该大小的临时表会转为磁盘临时表 )。 - InnoDB临时表空间:清楚 InnoDB 存储引擎在 MySQL 8 及以上版本中使用独立的临时表空间(默认位于
datadir
下的#innodb_temp
目录 )来存储磁盘临时表,而不是使用tmpdir
指定的目录。 - 临时表存储引擎:知道 MySQL 中的临时表可以使用不同的存储引擎(如 InnoDB、MyISAM 等 ),InnoDB 临时表存储在 InnoDB 临时表空间中,而 MyISAM 临时表存储在
tmpdir
指定的目录中。 - 内存与磁盘临时表转换:理解当内存临时表的大小超过
tmp_table_size
时,MySQL 会将其转换为磁盘临时表,磁盘临时表的存储位置取决于使用的存储引擎。 - tmpdir作用:明白
tmpdir
主要用于存储 MyISAM 临时表和其他一些临时文件,而 InnoDB 临时表使用自己的临时表空间。 - 系统命令输出分析:能够通过
ls
等系统命令的输出来分析数据库文件的存储位置和结构,如本题中通过ls -l | grep temp
输出判断 InnoDB 临时表空间的位置。
题目157
Choose the best answer.
Examine this command and output:
mysql> SHOW GLOBAL STATUS LIKE 'Firewall%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Firewall_access_denied | 7 |
| Firewall_access_granted | 4 |
| Firewall_access_suspicious | 3 |
| Firewall_cached_entries | 11 |
+-------------------------+-------+
Which statement is true?
○ A) Firewall_cached_entries
is the number of statements found in the query cache for users in DETECTING
mode.
○ B) Firewall_access_suspicious
is the number of statements logged as suspicious for users in DETECTING
mode.
○ C) Firewall_access_denied
is the number of connection attempts from prohibited hosts that are denied.
○ D) Firewall_access_granted
is the number of connections granted from whitelisted hosts.
翻译
选择最佳答案。
查看以下命令和输出:
mysql> SHOW GLOBAL STATUS LIKE 'Firewall%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Firewall_access_denied | 7 |
| Firewall_access_granted | 4 |
| Firewall_access_suspicious | 3 |
| Firewall_cached_entries | 11 |
+-------------------------+-------+
哪个陈述是正确的?
○ A) Firewall_cached_entries
是在 DETECTING
模式下用户的查询缓存中找到的语句数量。
○ B) Firewall_access_suspicious
是在 DETECTING
模式下被记录为可疑的语句数量。
○ C) Firewall_access_denied
是来自被禁止主机的被拒绝的连接尝试数量。
○ D) Firewall_access_granted
是来自白名单主机的被授予的连接数量。
解析和答案
- 选项A:
Firewall_cached_entries
表示防火墙缓存的条目数量,与查询缓存无关,A错误。 - 选项B:在 MySQL 防火墙中,
Firewall_access_suspicious
确实表示在DETECTING
模式下被记录为可疑的语句数量,B正确。 - 选项C:
Firewall_access_denied
是被防火墙拒绝的访问数量,不仅仅是来自被禁止主机的连接尝试,C错误。 - 选项D:
Firewall_access_granted
是被防火墙授予的访问数量,不一定是来自白名单主机的连接,D错误。
综上,正确答案是 B。
知识点总结
- MySQL 防火墙状态变量:了解与 MySQL 防火墙相关的状态变量(如
Firewall_access_denied
、Firewall_access_granted
、Firewall_access_suspicious
、Firewall_cached_entries
)的含义和作用。 - 防火墙模式:理解
DETECTING
模式下防火墙的行为,以及在该模式下各个状态变量的统计内容。 - 连接与访问控制:掌握防火墙在控制连接和访问方面的功能,以及如何通过状态变量查看相关统计信息。
题目158
Choose the best answer.
Examine this command:
shell> mysqldump --no-create-info --all-databases --result-file=dump.sql
Which statement is true?
○ A) It will not write CREATE TABLESPACE statements.
○ B) It will not write CREATE LOGFILE GROUP statements.
○ C) It will not write CREATE DATABASE statements.
○ D) It will not write CREATE TABLE statements.
翻译
选择最佳答案。
查看此命令:
shell> mysqldump --no-create-info --all-databases --result-file=dump.sql
哪个陈述是正确的?
○ A) 它不会写入 CREATE TABLESPACE 语句。
○ B) 它不会写入 CREATE LOGFILE GROUP 语句。
○ C) 它不会写入 CREATE DATABASE 语句。
○ D) 它不会写入 CREATE TABLE 语句。
解析和答案
- 选项A:
--no-create-info
选项主要影响的是表的创建语句,对于CREATE TABLESPACE
语句,该选项不直接控制其是否生成,A错误。 - 选项B:同样,该选项不针对
CREATE LOGFILE GROUP
语句,B错误。 - 选项C:
--all-databases
选项会导致mysqldump
生成CREATE DATABASE
语句,C错误。 - 选项D:
--no-create-info
选项的作用是让mysqldump
不生成CREATE TABLE
语句,D正确。
所以答案是D。
知识点总结
- mysqldump 选项作用:了解
mysqldump
工具的--no-create-info
选项的作用,该选项用于指定在备份数据时不生成CREATE TABLE
语句,只备份表中的数据。 - –all-databases 影响:清楚
--all-databases
选项的作用,它会让mysqldump
备份所有数据库,并生成CREATE DATABASE
语句来创建相应的数据库。 - 语句生成控制:明白不同的
mysqldump
选项对不同类型 SQL 语句(如CREATE TABLESPACE
、CREATE LOGFILE GROUP
、CREATE DATABASE
、CREATE TABLE
)生成的控制方式,--no-create-info
主要控制CREATE TABLE
语句的生成,而对其他语句的生成影响较小或没有影响。 - 备份内容理解:理解使用
--no-create-info
和--all-databases
选项组合进行备份时,备份文件中包含的内容,即包含所有数据库的创建语句(由--all-databases
导致 )和所有表的数据,但不包含表的创建语句(由--no-create-info
导致 )。 - 选项组合效果:掌握不同选项组合使用时的效果,以便根据实际需求选择合适的
mysqldump
命令选项来进行数据库备份。
题目159
Choose two.
Which two are true about differences between logical and physical upgrades of MySQL databases?
□ A) Logical upgrades are much faster because they do not require restarting the mysqld
process.
□ B) Physical upgrades are much faster because they do not require restarting the mysqld
process.
□ C) Physical upgrades are performed for current instances on bare metal deployments, whereas logical upgrades are used for virtual machines or containerized instances.
□ D) Post-upgrade table storage requirements after physical upgrades are usually smaller than that after logical upgrades.
□ E) Post-upgrade table storage requirements after logical upgrades are usually smaller than that after physical upgrades.
□ F) Physical upgrades leave data in place, whereas logical upgrades require data to be restored from mysqldump
-type backups taken before the upgrades.
翻译
选择两项。
关于 MySQL 数据库的逻辑升级和物理升级之间的差异,哪两项是正确的?
□ A) 逻辑升级速度快得多,因为它们不需要重启 mysqld
进程。
□ B) 物理升级速度快得多,因为它们不需要重启 mysqld
进程。
□ C) 物理升级用于裸金属部署上的当前实例,而逻辑升级用于虚拟机或容器化实例。
□ D) 物理升级后表的存储需求通常比逻辑升级后小。
□ E) 逻辑升级后表的存储需求通常比物理升级后小。
□ F) 物理升级保留数据原位,而逻辑升级需要从升级前的 mysqldump
类型备份中恢复数据。
解析和答案
- 选项A:逻辑升级通常需要更长时间,因为涉及到数据的导出和导入等操作,并且可能需要重启
mysqld
进程,A错误。 - 选项B:物理升级虽然相对较快,但通常也需要重启
mysqld
进程来完成升级,B错误。 - 选项C:物理升级和逻辑升级的使用场景与部署环境(裸金属、虚拟机、容器化等)没有必然的对应关系,C错误。
- 选项D:物理升级不会改变数据的存储格式和结构,而逻辑升级可能会因为数据导出导入等操作导致存储需求变化,通常物理升级后表的存储需求不会比逻辑升级后小,D错误。
- 选项E:逻辑升级过程中,数据可能会经过一些处理,例如优化存储等,导致升级后表的存储需求通常比物理升级后小,E正确。
- 选项F:物理升级是直接对数据库文件进行操作,数据保留在原位;而逻辑升级需要先导出数据(如使用
mysqldump
),升级后再导入数据,F正确。
综上,正确答案是 EF。
知识点总结
- 逻辑升级与物理升级概念:理解逻辑升级(通过导出导入数据等方式)和物理升级(直接操作数据库文件等方式)的基本概念和操作方式。
- 升级对存储的影响:了解逻辑升级和物理升级在升级后对表存储需求的不同影响,逻辑升级可能会优化存储,导致存储需求相对较小。
- 数据处理方式:掌握物理升级保留数据原位,逻辑升级需要依赖备份恢复数据的特点。
题目160
Choose the best answer.
You wish to protect your MySQL database against SQL injection attacks.
Which method would fail to do this?
○ A) using stored procedures for any database access
○ B) avoiding concatenation of SQL statements and user-supplied values in an application
○ C) using PREPARED STATEMENTS
○ D) installing and configuring the Connection Control plugin
翻译
选择最佳答案。
你希望保护你的 MySQL 数据库免受 SQL 注入攻击。
哪种方法无法做到这一点?
○ A) 对任何数据库访问都使用存储过程
○ B) 在应用程序中避免将 SQL 语句和用户提供的值进行拼接
○ C) 使用预处理语句(PREPARED STATEMENTS)
○ D) 安装和配置连接控制(Connection Control)插件
解析和答案
- 选项A:使用存储过程可以将 SQL 逻辑封装在数据库端,减少应用程序中直接拼接 SQL 语句的风险,在一定程度上有助于防止 SQL 注入,A不符合题意。
- 选项B:避免 SQL 语句和用户输入值的拼接是防止 SQL 注入的重要措施,因为拼接容易导致恶意 SQL 代码被注入,B不符合题意。
- 选项C:预处理语句(如
PREPARE
和EXECUTE
)可以将 SQL 语句和参数分离,有效防止 SQL 注入,C不符合题意。 - 选项D:连接控制插件主要用于限制客户端的连接尝试次数等连接层面的控制,与防止 SQL 注入攻击没有直接关系,D符合题意。
所以答案是D。
知识点总结
- SQL注入攻击防护:了解防止 SQL 注入攻击的常用方法,包括使用存储过程、避免 SQL 语句拼接、使用预处理语句等。
- 存储过程作用:存储过程可以将 SQL 逻辑封装在数据库中,减少应用程序与数据库之间直接的 SQL 语句交互,从而降低 SQL 注入的风险。
- SQL拼接风险:SQL 语句和用户输入值的拼接是导致 SQL 注入的常见原因,避免这种拼接是防护的关键。
- 预处理语句优势:预处理语句将 SQL 语句的结构和参数分开处理,参数不会被当作 SQL 代码执行,有效防止 SQL 注入。
- 连接控制插件功能:连接控制插件主要用于控制客户端的连接行为,如限制连接尝试次数、设置连接超时等,与 SQL 注入防护无关。