MySQL 8.0 OCP 1Z0-908 题目解析(33)
题目129
Choose the best answer.
Examine the command, which executes successfully:
shell> mysqld --initialize
Which statement is true?
○ A) The root password is created in the error log in plain text.
○ B) The installation creates a temporary test environment with data in the /tmp directory.
○ C) The installation is created without enforcing or generating SSL certificates.
○ D) The root password is not created allowing easy access from the same host.
翻译
选择最佳答案。
查看成功执行的命令:
shell> mysqld --initialize
哪个陈述是正确的?
○ A) root 密码以明文形式创建在错误日志中。
○ B) 安装在 /tmp 目录中创建了一个带有数据的临时测试环境。
○ C) 安装未强制或生成 SSL 证书。
○ D) 未创建 root 密码,允许从同一主机轻松访问。
解析和答案
- 选项A:当执行
mysqld --initialize
时,会为 root 用户生成一个临时密码,并将其记录在错误日志中,且是以明文形式记录的,A正确。 - 选项B:
mysqld --initialize
主要是初始化数据目录,不是创建临时测试环境在/tmp
目录,B错误。 - 选项C:该命令与 SSL 证书的生成和强制无关,C错误。
- 选项D:
mysqld --initialize
会创建 root 临时密码,不是不创建,D错误。
所以答案是A。
知识点总结
- mysqld --initialize 命令:了解
mysqld --initialize
命令的作用,它用于初始化 MySQL 数据目录,在初始化过程中会为 root 用户生成一个临时密码,并将该密码记录在错误日志中。 - root 密码生成与记录:清楚在使用
mysqld --initialize
初始化时,root 临时密码的生成和记录方式,以及如何从错误日志中获取该密码。 - 命令功能区分:能够区分
mysqld --initialize
与其他 MySQL 初始化相关命令(如mysqld --initialize-insecure
)的功能差异,mysqld --initialize-insecure
不会生成临时密码,允许无密码访问。
题目130
Choose the best answer.
Your MySQL Server is running locally on your Linux installation, and has SSL connections configured but not mandatory.
# mysql -u root -h localhost -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.18-commercial MySQL Enterprise Server - Commercialmysql> STATUS;
--------------
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.18-commercial MySQL Enterprise Server - Commercial
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 min 54 sec
Threads: 2 Questions: 10 Slow queries: 0 Opens: 132 Flush tables: 3 Open tables: 52 Queries per second avg: 0.057
--------------mysql> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'ssl%' AND Value != '';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| ssl_ca | ca.pem |
| ssl_cert | server-cert.pem |
| ssl_fips_mode | OFF |
| ssl_key | server-key.pem |
+---------------+-------------------+
4 rows in set (0.01 sec)
What is the reason for SSL not being used?
○ A) It is connected via a UNIX socket.
○ B) A current database is not selected. There is nothing to encrypt.
○ C) The root user cannot use encryption.
○ D) The root user must use ssl_fips_mode = ON.
翻译
选择最佳答案。
你的 MySQL 服务器在你的 Linux 安装上本地运行,并且已配置 SSL 连接,但不是强制的。
# mysql -u root -h localhost -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.18-commercial MySQL Enterprise Server - Commercialmysql> STATUS;
--------------
Connection id: 9
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.18-commercial MySQL Enterprise Server - Commercial
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 2 min 54 sec
Threads: 2 Questions: 10 Slow queries: 0 Opens: 132 Flush tables: 3 Open tables: 52 Queries per second avg: 0.057
--------------mysql> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'ssl%' AND Value != '';
+---------------+-------------------+
| Variable_name | Value |
+---------------+-------------------+
| ssl_ca | ca.pem |
| ssl_cert | server-cert.pem |
| ssl_fips_mode | OFF |
| ssl_key | server-key.pem |
+---------------+-------------------+
4 rows in set (0.01 sec)
SSL 未被使用的原因是什么?
○ A) 它通过 UNIX 套接字连接。
○ B) 未选择当前数据库。没有什么可加密的。
○ C) root 用户无法使用加密。
○ D) root 用户必须使用 ssl_fips_mode = ON。
解析和答案
- 选项A:从
STATUS
输出可知连接方式是Localhost via UNIX socket
,UNIX 套接字连接是本地连接,通常不会使用 SSL(SSL 主要用于网络连接加密 ),所以这是 SSL 未被使用的原因,A正确。 - 选项B:是否选择当前数据库与 SSL 是否使用没有直接关系,SSL 用于加密连接,不是加密数据内容,B错误。
- 选项C:没有限制
root
用户使用加密的相关设置或规则,C错误。 - 选项D:
ssl_fips_mode
是 FIPS 模式相关设置,与当前通过 UNIX 套接字连接导致不使用 SSL 的情况无关,D错误。
所以答案是A。
知识点总结
- MySQL SSL 连接:了解 SSL 连接的适用场景,通常用于网络连接(如 TCP/IP 连接 )的加密,本地 UNIX 套接字连接一般不使用 SSL。
- MySQL 连接方式:熟悉不同的连接方式(如 UNIX 套接字、TCP/IP 等 )及其特点,以及不同连接方式下 SSL 的使用情况。
- MySQL 状态查看:掌握通过
STATUS
语句和SHOW GLOBAL VARIABLES
语句查看连接状态和 SSL 相关配置的方法,能够从输出信息中分析问题原因。
题目131
Choose the best answer.
You encountered an insufficient privilege error in the middle of a long transaction.
The database administrator is informed and immediately grants the required privilege:
GRANT UPDATE ON world.city TO ‘user1’;
How can you proceed with your transaction with the least interruption?
○ A) Close the connection, reconnect, and start the transaction again.
○ B) Re-execute the failed statement in your transaction.
○ C) Roll back the transaction and start the transaction again in the same session.
○ D) Change the default database and re-execute the failed statement in your transaction.
翻译
选择最佳答案。
在一个长事务进行到一半时,你遇到了权限不足的错误。
数据库管理员得知后立即授予了所需的权限:
GRANT UPDATE ON world.city TO ‘user1’;
你如何能以最小的中断继续你的事务?
○ A) 关闭连接,重新连接,并再次开始事务。
○ B) 在你的事务中重新执行失败的语句。
○ C) 回滚事务并在同一个会话中再次开始事务。
○ D) 更改默认数据库并在你的事务中重新执行失败的语句。
解析和答案
- 选项A:关闭连接并重新连接会导致事务需要重新开始,中断较大,A错误。
- 选项B:当权限被授予后,在当前事务中重新执行失败的语句,由于权限已经满足,该语句可以成功执行,这种方式对事务的中断最小,B正确。
- 选项C:回滚事务并重新开始会导致事务中已执行的操作被撤销,中断较大,C错误。
- 选项D:更改默认数据库并不能解决权限问题,且可能引入新的问题,D错误。
所以答案是B。
知识点总结
- MySQL权限与事务:理解权限在事务中的生效情况,当在事务执行过程中权限不足导致语句失败,在权限被授予后,在原事务中重新执行失败语句即可继续事务,无需重启事务或连接。
- 事务中断最小化:掌握在遇到权限等问题时,如何以最小的中断方式恢复事务执行,避免不必要的回滚和重新开始操作。
- 权限授予与生效:清楚权限授予后在当前会话中的生效情况,权限授予后,当前会话中后续的语句执行可以使用新授予的权限。
题目132
Choose two.
You must export data from a set of tables in the world_x database.
Examine this set of tables:
Tables (country, countryinfo, location)
Which two options will export data into one or more files?
□ A) shell> mysqldump world_x country countryinfo location > mydump.sql
□ B) mysql> SELECT * INTO OUTFILE ‘/output/country.txt’ FROM world_x.country;
mysql> SELECT * INTO OUTFILE ‘/output/countryinfo.txt’ FROM world_x.countryinfo;
mysql> SELECT * INTO OUTFILE ‘/output/location.txt’ FROM world_x.location;
□ C) shell> mysqlexport world_x country countryinfo location > mydump.sql
□ D) mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/country’;
mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/countryinfo’;
mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/location’;
□ E) shell> mysql --batch world_x.country world_x.countryinfo world_x.location > mydump.sql
翻译
选择两个答案。
你必须从 world_x 数据库中的一组表导出数据。
查看这组表:
表(country, countryinfo, location)
哪两个选项会将数据导出到一个或多个文件中?
□ A) shell> mysqldump world_x country countryinfo location > mydump.sql
□ B) mysql> SELECT * INTO OUTFILE ‘/output/country.txt’ FROM world_x.country;
mysql> SELECT * INTO OUTFILE ‘/output/countryinfo.txt’ FROM world_x.countryinfo;
mysql> SELECT * INTO OUTFILE ‘/output/location.txt’ FROM world_x.location;
□ C) shell> mysqlexport world_x country countryinfo location > mydump.sql
□ D) mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/country’;
mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/countryinfo’;
mysql> CLONE LOCAL DATA DIRECTORY = ‘/var/lib/mysql/world_x/location’;
□ E) shell> mysql --batch world_x.country world_x.countryinfo world_x.location > mydump.sql
解析和答案
- 选项A:
mysqldump
是 MySQL 用于逻辑备份的工具,可以指定数据库和表,将数据导出到一个 SQL 文件(mydump.sql
)中,A正确。 - 选项B:
SELECT ... INTO OUTFILE
语句可以将查询结果导出到文本文件中,这里分别对三个表执行该语句,将数据导出到三个不同的文本文件,B正确。 - 选项C:MySQL 中没有
mysqlexport
这个命令,C错误。 - 选项D:
CLONE
语句主要用于克隆数据,不是用于导出数据到文件,D错误。 - 选项E:
mysql --batch
主要用于以批处理模式执行 SQL 语句,但这种方式不能正确地将指定表的数据导出到文件,E错误。
所以答案是AB。
知识点总结
- MySQL数据导出工具与语句:掌握常用的数据导出方法,包括
mysqldump
工具和SELECT ... INTO OUTFILE
语句。mysqldump
用于逻辑备份,可导出一个或多个表的数据到 SQL 文件;SELECT ... INTO OUTFILE
用于将查询结果导出到文本文件。 - 命令有效性:清楚 MySQL 中不存在
mysqlexport
这样的命令,避免使用错误的命令进行数据导出操作。 - CLONE语句功能:了解
CLONE
语句的主要功能是克隆数据,而不是用于数据导出到文件,避免混淆其用途。 - 批处理模式局限性:知道
mysql --batch
模式主要用于执行 SQL 语句并以批处理方式输出结果,但在数据导出到文件方面,不如mysqldump
和SELECT ... INTO OUTFILE
直接和有效。