题目69
Choose three.
A MySQL server is monitored using MySQL Enterprise Monitor’s agentless installation.
Which three features are available with this installation method?
□ A) MySQL Replication monitoring
□ B) security-related advisor warnings
□ C) CPU utilization
□ D) disk usage and disk characteristics including disk advisors warnings
□ E) MySQL Query Analysis data
□ F) operating system memory utilization
□ G) network-related information and network characteristics
翻译
选择三项。
使用 MySQL Enterprise Monitor 的无代理安装方式监控 MySQL 服务器。
这种安装方式提供以下哪三项功能?
□ A) MySQL 复制监控
□ B) 安全相关的顾问警告
□ C) CPU 利用率
□ D) 磁盘使用情况和磁盘特征(包括磁盘顾问警告 )
□ E) MySQL 查询分析数据
□ F) 操作系统内存利用率
□ G) 网络相关信息和网络特征
解析和答案
- 选项A:MySQL Enterprise Monitor 的无代理安装支持 MySQL 复制监控,可监控主从复制状态等,A正确。
- 选项B:能提供安全相关的顾问警告,辅助发现数据库安全隐患,B正确。
- 选项C:无代理安装方式通常无法直接获取 CPU 利用率(需依赖操作系统工具或其他代理 ),C错误。
- 选项D:无代理安装一般不能获取详细的磁盘使用和特征(尤其是涉及磁盘顾问警告 ),D错误。
- 选项E:支持 MySQL 查询分析数据的获取,帮助分析查询性能,E正确。
- 选项F:无代理安装难以直接获取操作系统内存利用率,F错误。
- 选项G:无代理安装基本无法获取网络相关信息和特征,G错误。
所以答案是A、B、E。
知识点总结
- MySQL Enterprise Monitor 无代理安装:了解 MySQL Enterprise Monitor 无代理安装方式的功能范围,它主要聚焦于 MySQL 数据库本身的相关监控,如复制状态、安全顾问、查询分析等。明确无代理安装在获取操作系统层面(如 CPU、内存、磁盘、网络 )信息时的局限性,根据实际监控需求选择合适的安装方式(代理或无代理 ),保障对 MySQL 服务器的全面有效监控。
- 数据库监控工具功能:掌握数据库监控工具的核心功能,区分针对数据库本身和操作系统层面的监控能力。在使用 MySQL Enterprise Monitor 时,利用其无代理安装对数据库复制、安全、查询分析的支持,同时知晓其在操作系统监控方面的不足,必要时结合其他工具补充监控,构建完整的数据库及系统监控体系。
题目70
Choose two.
Examine this MySQL client command to connect to a remote database:
mysql -h remote.example.org -u root -p --protocol=TCP --ssl-mode=
Which two --ssl-mode
values will ensure that an X.509-compliant certificate will be used to establish the SSL/TLS connection to MySQL?
□ A) DISABLED
□ B) REQUIRED
□ C) VERIFY_IDENTITY
□ D) PREFERRED
□ E) VERIFY_CA
翻译
选择两项。
查看用于连接远程数据库的 MySQL 客户端命令:
mysql -h remote.example.org -u root -p --protocol=TCP --ssl-mode=
哪两个 --ssl-mode
值可确保使用符合 X.509 标准的证书建立与 MySQL 的 SSL/TLS 连接?
□ A) DISABLED
□ B) REQUIRED
□ C) VERIFY_IDENTITY
□ D) PREFERRED
□ E) VERIFY_CA
解析和答案
- 选项A:
DISABLED
表示禁用 SSL/TLS,不会使用证书,A错误。 - 选项B:
REQUIRED
要求使用 SSL/TLS,但不验证证书,可能不使用 X.509 合规证书,B错误。 - 选项C:
VERIFY_IDENTITY
会验证证书身份,确保使用符合 X.509 标准的证书,C正确。 - 选项D:
PREFERRED
优先使用 SSL/TLS,若不可用则降级,不强制验证证书,D错误。 - 选项E:
VERIFY_CA
会验证证书颁发机构,确保使用符合 X.509 标准的证书,E正确。
所以答案是C、E。
知识点总结
- MySQL SSL/TLS 连接模式:掌握
--ssl-mode
不同取值的含义,DISABLED
禁用加密,REQUIRED
启用加密但不验证,PREFERRED
优先加密,VERIFY_CA
验证证书颁发机构,VERIFY_IDENTITY
验证证书身份。明确需验证证书时应选择VERIFY_CA
或VERIFY_IDENTITY
,保障 SSL/TLS 连接的安全性和证书合规性,防止中间人攻击等安全风险。 - 数据库安全连接配置:在配置 MySQL 客户端与服务端的安全连接时,根据安全需求选择合适的
ssl-mode
。对于需要确保使用合规 X.509 证书的场景,选用VERIFY_CA
(验证 CA )或VERIFY_IDENTITY
(验证身份 ),提升数据库连接的安全性,保护数据在传输过程中的机密性和完整性。
题目71
Choose two.
On examination, your MySQL installation datadir has become recursively world read/write/executable.
What are two major concerns of running an installation with incorrect file privileges?
□ A) Extra startup time would be required for the MySQL server to reset the privileges.
□ B) MySQL binaries could be damaged, deleted, or altered.
□ C) SQL injections could be used to insert bad data into the database.
□ D) Data files could be deleted.
□ E) Users could overwrite configuration files.
翻译
选择两项。
经检查,你的 MySQL 安装的 datadir
已递归设置为全局可读/可写/可执行。
运行文件权限不正确的安装,主要有哪两个担忧?
□ A) MySQL 服务器重置权限需要额外的启动时间。
□ B) MySQL 二进制文件可能被损坏、删除或修改。
□ C) SQL 注入可能被用于向数据库插入不良数据。
□ D) 数据文件可能被删除。
□ E) 用户可能覆盖配置文件。
解析和答案
- 选项A:文件权限错误不会导致服务器启动时重置权限需额外时间,A错误。
- 选项B:
datadir
权限错误主要影响数据文件,不是 MySQL 二进制文件(二进制文件通常在其他目录 ),B错误。 - 选项C:SQL 注入与应用代码和查询处理有关,和文件权限无关,C错误。
- 选项D:
datadir
包含数据库数据文件,全局可写意味着任意用户可能删除数据文件,D正确。 - 选项E:若配置文件(如
my.cnf
)所在目录权限不当,用户可能覆盖配置文件,影响 MySQL 运行,E正确。
所以答案是D、E。
知识点总结
- MySQL 文件权限风险:理解
datadir
等关键目录文件权限不正确带来的风险,数据文件因可写可能被删除,配置文件因权限问题可能被覆盖。掌握文件权限对 MySQL 安全运行的重要性,在部署和运维中,严格设置datadir
、配置文件等的权限(如限制为 MySQL 运行用户可读写 ),防止因权限过松导致数据丢失、配置被篡改等安全事件,保障数据库的完整性和可用性。 - 数据库安全运维:在数据库日常运维中,文件权限管理是基础且关键的环节。定期检查
datadir
、配置文件、二进制文件等的权限设置,遵循最小权限原则,仅赋予必要用户和进程相应权限。通过合理的权限配置,降低外部用户对数据库文件的非法操作风险,提升数据库整体安全性。
题目72
Choose two.
Examine this query and output:
mysql> EXPLAIN ANALYZE
SELECT city.CountryCode, country.Name AS Country_Name ,
city.Name, city.District, city.Population
FROM world.city
INNER JOIN world.country ON country.Code = city.CountryCode
WHERE country.Continent = ' Asia '
AND city.Population > 1000000
ORDER BY city.Population DESC\G
EXPLAIN: *************************** 1. row ***************************
-> Sort: <temporary>.Population DESC (actual time=8.306..8.431 rows=125 loops=1)
-> Stream results (actual time=0.145..8.033 rows=125 loops=1)
-> Nested loop inner join (cost=241.12 rows=205) (actual time=0.141..7.787 rows=125 loops=1)
-> Filter: (world.country.Continent = 'Asia') (cost=25.40 rows=34) (actual time=0.064..0.820 rows=51 loops=1)
-> Table scan on country (cost=25.40 rows=239) (actual time=0.059..0.359 rows=239 loops=1)
-> Filter: (world.city.Population > 1000000) (cost=4.53 rows=6) (actual time=0.059..0.131 rows=2 loops=51)
-> Index lookup on city using CountryCode (CountryCode=world.country.`Code`) (cost=4.53 rows=18) (actual time=0.023..0.096 rows=35 loops=51)
1 row in set (0.0094 sec)
Which two statements are true?
□ A) The country table is accessed as the first table, and then joined to the city table.
□ B) 35 rows from the city table are included in the result.
□ C) The optimizer estimates that 51 rows in the country table have Continent=‘Asia’.
□ D) It takes more than 8 milliseconds to sort the rows.
□ E) The query returns exactly 125 rows.
翻译
选择两项。
查看以下查询和输出:
mysql> EXPLAIN ANALYZE
SELECT city.CountryCode, country.Name AS Country_Name ,
city.Name, city.District, city.Population
FROM world.city
INNER JOIN world.country ON country.Code = city.CountryCode
WHERE country.Continent = ' Asia '
AND city.Population > 1000000
ORDER BY city.Population DESC\G
EXPLAIN: *************************** 1. row ***************************
-> Sort: <temporary>.Population DESC (actual time=8.306..8.431 rows=125 loops=1)
-> Stream results (actual time=0.145..8.033 rows=125 loops=1)
-> Nested loop inner join (cost=241.12 rows=205) (actual time=0.141..7.787 rows=125 loops=1)
-> Filter: (world.country.Continent = 'Asia') (cost=25.40 rows=34) (actual time=0.064..0.820 rows=51 loops=1)
-> Table scan on country (cost=25.40 rows=239) (actual time=0.059..0.359 rows=239 loops=1)
-> Filter: (world.city.Population > 1000000) (cost=4.53 rows=6) (actual time=0.059..0.131 rows=2 loops=51)
-> Index lookup on city using CountryCode (CountryCode=world.country.`Code`) (cost=4.53 rows=18) (actual time=0.023..0.096 rows=35 loops=51)
1 row in set (0.0094 sec)
以下哪两个陈述是正确的?
□ A) country表作为第一个被访问的表,然后与city表进行连接。
□ B) 结果中包含来自city表的35行数据。
□ C) 优化器估计country表中有51行满足Continent=‘Asia’。
□ D) 对行进行排序花费了超过8毫秒的时间。
□ E) 查询恰好返回125行数据。
解析和答案
- 选项A:从执行计划中
Nested loop inner join
的层级来看,先访问world.country
表(Table scan on country
),然后再与world.city
表连接,A正确。 - 选项B:执行计划中
Index lookup on city... actual time=0.023..0.096 rows=35 loops=51
,这里的35行是每次循环的行数,不是最终结果的行数,B错误。 - 选项C:执行计划中
Filter: (world.country.Continent = 'Asia') (cost=25.40 rows=34) (actual time=0.064..0.820 rows=51 loops=1)
,优化器估计的是34行,实际是51行,C错误。 - 选项D:执行计划中
Sort: <temporary>.Population DESC (actual time=8.306..8.431 rows=125 loops=1)
,排序实际时间是8.306到8.431毫秒,是超过8毫秒,不过结合其他选项,E更准确,且D表述虽然数值对,但不是最符合的,重点看E。 - 选项E:执行计划中
Sort: ... rows=125 loops=1
以及Stream results (actual time=0.145..8.033 rows=125 loops=1)
,说明最终查询返回125行,E正确。
所以答案是A、E。
知识点总结
- 执行计划分析:学会解读
EXPLAIN ANALYZE
输出的执行计划,包括表的访问顺序、连接类型、过滤条件的估计与实际行数、排序操作的耗时和结果行数等。通过分析执行计划,能了解查询的执行流程、性能瓶颈,以及验证查询结果相关信息(如返回行数 )。 - 查询优化与调优:理解执行计划中各部分(如表扫描、索引查找、连接、排序 )对查询性能的影响,掌握如何根据执行计划优化查询,比如调整表连接顺序、优化索引、调整过滤条件等,以提升查询效率,这对于数据库性能优化至关重要。