MySQL 5.7 DBA认证1z0-888备考:从题库到命令实操

发布时间:2026/10/13 21:40:46
MySQL 5.7 DBA认证1z0-888备考:从题库到命令实操
简介MySQL 5.7 Database Administrator1z0-888认证备考题库以单个docx文档形式提供面向计划考取MySQL中级认证的数据库管理员、运维工程师及在校学生。内容围绕数据库管理、性能优化、安全机制与故障排查等核心模块覆盖认证考试中的常见题型与易错点适合在复习阶段进行自测和查漏补缺。文档共1个文件大小约1.25MB为Word格式便于搜索、标注与打印练习。目前已有357人学习下载题库实用性得到一定认可。节选题目涉及MyISAM存储引擎磁盘空间耗尽时的处理机制、mysql_config_editor登录路径特性、使用mysqld --initialize初始化数据目录以及明文密码认证插件下的客户端连接方式等均附有参考答案与简要解析能帮助考生理解出题思路、掌握配置细节并规避实操中容易忽略的坑点。整体而言该题库是一份聚焦高频考点的精简练习资料适合作为考前冲刺或日常巩固的辅助工具。1. 1z0-888 不是一场可以裸考的考试先看清题库文档里到底有什么手头有一份 MySQL 5.7 Database Administrator 1z0-888认证题库.docx 的人多半是冲着“刷两周题、背熟答案、直接去考 Oracle”来的。我的建议很直接先别急着背这张 docx 只能当索引不能当答案书。1z0-888 是 Oracle 面向 MySQL 5.7 DBA 的官方认证考试考题形式大多不是“下面哪个参数正确”而是给你一段 my.cnf、一条报错、一台主从拓扑让你判断故障出在哪、下一步该敲什么命令。这份题库文档真正有用的地方是把考点和关键词列给你但每道题背后的命令必须自己在实验机上跑通考试才不会翻车。这篇文章就是一条从文档到实操的备考路径适合已经在 CentOS 上装过 MySQL 5.7、但对备份恢复和复制还停留在“看过没做过”阶段的运维。2. 1z0-888 考纲拆解文档目录不等于官方考点权重2.1 从 MySQL 官方认证页找 Exam Topics先做章节到技能域的映射拿到 docx 的第一件事不是从头看第一页而是先去 MySQL 认证官方页面把 1z0-888 的 Exam Topics 下载下来。这个考试对应的官方主题列表是公开的它会按技能域告诉你“安装和配置大概考多少、复制大概考多少、备份恢复大概考多少”。而市面上的题库 docx 是按章节编排的章节顺序跟着参考手册走两者对不上是常态。我一般会做一张映射表把 docx 的目录章节对应到官方技能域上题库常见章节docx 目录对应官方技能域必须能敲出来的命令安装与初始化服务器安装 / 配置mysqld --initialize、SHOW VARIABLES用户与权限安全CREATE USER、GRANT、SHOW GRANTS备份与恢复备份 / 恢复mysqldump、mysqlbinlog复制复制CHANGE MASTER TO、START SLAVE性能监控性能调优EXPLAIN、performance_schema 查询高可用架构半同步复制参数、多源复制配置这张表做完了你会发现 docx 里某些章节篇幅很大但考试权重很低反过来复制和备份恢复这两章往往篇幅不大却是整场考试的命脉。先把精力分配到权重高的地方比按文档顺序硬啃划算得多。2.2 把五个技能域翻译成能敲的命令每个考点背后都有一条 SQL背考纲最怕背成“名词解释”。我的习惯是把每一条主题改写成一条可执行的命令改完之后才知道自己到底会不会。比如“用户与权限”这个域落在键盘上就是一组 SQL-- 创建用户并授权注意 5.7 里密码默认过期策略 CREATE USER app_rw192.168.1.% IDENTIFIED BY StrongPass_1; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO app_rw192.168.1.%; SHOW GRANTS FOR app_rw192.168.1.%;逻辑说明5.7 里 CREATE USER 和 GRANT 是分开的8.0 里可以用一条 CREATE USER 带授权选项但 1z0-888 考的是 5.7题目里如果出现“一条语句完成建号和授权”答案多半是错的。SHOW GRANTS 用来核对权限这是考试里经常出现的“给出权限表判断哪个用户能连哪个库”题型的验证手段。再比如“性能调优”这个域落在命令上就是 EXPLAIN 和慢查询日志EXPLAIN SELECT u.name, o.order_no FROM users u JOIN orders o ON u.id o.user_id WHERE u.created_at 2025-01-01;逻辑说明EXPLAIN 的输出里type 字段从 system 到 range 再到 ALLALL 就是全表扫描这是 DBA 面试和认证都喜欢考的。docx 里这类题往往直接给执行计划截图让你选“哪条索引生效”你光背结论没用必须在实验机上造一张百万行的表跑一遍才知道 typeref 和 typerange 的差异在真实数据下长什么样。2.3 为什么 MySQL 5.7 专属考点最容易丢分版本指纹藏在选项里1z0-888 最阴的地方在于它考的是 5.7 的“行为”不是通用 MySQL 知识。很多题库是从 5.6 时代传下来的文档里还写着“用 mysql_install_db 初始化数据目录、用 mysql_upgrade 做升级、默认认证插件是 mysql_native_password”。这些话在 5.6 没错在 5.7 里有的已经废弃有的改了默认值。我管这些叫“版本指纹”。拿到一道题先不看答案先看选项里有没有版本指纹选项出现innodb_file_per_table、innodb_buffer_pool_size这是 5.5 就有的出现gtid_mode、enforce_gtid_consistency这是 5.6 开始有、5.7 真正成熟的出现performance_schema默认开启、临时密码机制、sys schema这是 5.7 的标识。如果选项里混着mysql_install_db基本可以判定这种题库来自旧版本做题时要以 5.7 官方参考手册为准不要被 docx 的“标准答案”带跑。提示docx 里的答案不是不能信但它只对 80% 的题负责。剩下 20% 的版本差异题是很多人考完出来对答案才发现错的。3. 把 docx 题库变成学习计划先搭一台能跑命令的 MySQL 5.7 实验机3.1 CentOS 7 上安装 MySQL 5.7 的最小步骤初始化与临时密码备考 1z0-888 最忌讳“只看不练”。文档里的 SQL 你不敲一遍永远不知道什么叫“这条命令在 5.7 里只能这么写”。第一步是搭一台干净的实验机操作系统用 CentOS 7 最省事MySQL 版本锁死 5.7。# 下载 MySQL 官方 Yum 仓库 rpm 并安装具体小版本号以仓库页面为准 rpm -ivh mysql57-community-release-el7-11.noarch.rpm # 安装服务端会自动带上 client 和 common 组件 yum install -y mysql-community-server逻辑说明官方仓库 rpm 装好后yum 源里默认启用的是最新大版本。如果你的机器已经配过其他 MySQL 源要检查 /etc/yum.repos.d/mysql-community.repo 里 5.7 的 enabled1、8.0 的 enabled0否则 yum install 可能装成 8.0后面的练习全部白做。手边没有这台机器的用虚拟机或者容器都行关键是版本别贪新。# 5.7 的初始化是一条命令不是旧版的 mysql_install_db mysqld --initialize --usermysql # 初始化生成的临时 root 密码在错误日志里 grep temporary password /var/log/mysqld.log参数说明--initialize会创建数据目录、系统表并生成一个 rootlocalhost 的临时密码。数据目录必须为空否则初始化直接报错--usermysql让 mysqld 以 mysql 用户身份创建文件避免目录属主不对导致启动失败。临时密码只在第一次登录时有效登录后必须立刻 ALTER USER就算你想设简单密码也会被 validate_password 插件拦截这就是 5.7 默认策略的一部分也是考题里反复出现的场景。3.2 给每道题做实验映射用一条命令验证一个知识点题库 docx 里每道题我建议都做一次“实验映射”把题干翻译成一个可以在实验机上执行的验证动作。以“MySQL 5.7 默认事务隔离级别”这道题为例先别背答案“REPEATABLE-READ”去实验机敲这两条-- 5.7 官方推荐的变量名 SELECT transaction_isolation; -- 兼容别名5.7 中已标记废弃但还能查 SELECT tx_isolation;逻辑说明这两个变量查出来的值可能一样但变量名的新旧本身就是考点。5.7 里 GLOBAL 和 SESSION 两个作用域都要会区分docx 里经常故意把 global 和 session 写反。你在实验机上做成一张速查表考试时遇到这类题相当于把原题背下来了。再比如“什么时候需要 FLUSH PRIVILEGES”这道题正确答案是“用了 INSERT/UPDATE 直接改 mysql.user 表后需要”而“用了 CREATE USER 或 GRANT 后不需要”。这句话背下来容易但你去实验机上亲手改一次 mysql.user 表再踩一次权限不生效的坑印象会深得多。备考阶段宁可多花半小时在实验机上折腾也别把时间花在反复背那道已经会的题上。3.3 维护一份命令复盘表docx 之外真正属于你的备考资产刷题到中期你会发现自己反复错的是同一批题。这时候不要继续刷新题而是停下来做复盘表。我用的模板长这样题号题干关键词真实考点验证命令实验现象备注102GTID 复制报错server-uuid 冲突cat /var/lib/mysql/auto.cnf主从 UUID 相同从库改 UUID 后重启118临时密码找不到初始化日志路径grep temporary /var/log/mysqld.log日志无记录检查 datadir 权限这张表最大的作用是把 docx 的“标准答案”转换成自己的排错经验。考试里很多场景题给的就是复盘表第二列那种一句话故障描述你能从“现象”直接跳到“解决命令”靠的不是背题而是你已经真跑过一遍这条链路。4. 1z0-888 的三座大山备份恢复、主从复制、性能诊断4.1 mysqldump 的四个必调参数single-transaction、master-data、set-gtid-purged、quick备份恢复是 1z0-888 里权重最高的域之一。而 mysqldump 又是最常考的工具它一套参数组合几乎能覆盖考试里的所有选择题。mysqldump --single-transaction --master-data2 \ --set-gtid-purgedOFF --routines --triggers --events \ -h 127.0.0.1 -u backup_user -p \ --databases app_db /backup/app_db.sql逻辑说明与参数说明--single-transactionInnoDB 表在导出时开启一个一致性的读事务不加这个参数导出过程中别的会话写入数据会导致备份集不一致这是 5.7 里线上备份的默认姿势。--master-data2把 CHANGE MASTER TO 语句作为注释写进备份文件同时会触发 FLUSH TABLES WITH READ LOCK 获取 binlog 坐标。这个参数在备份里写明了“该备份对应哪个 binlog 位置”恢复后做复制全靠它。--set-gtid-purgedOFF如果你的主库开了 GTID导出的文件里默认会带有 SET GLOBAL.gtid_purged 语句。从库恢复时如果不想让备库继承这套 GTID 区间就把它关掉考试里经常问“为什么备份文件里有 gtid_purged”答案就是这个参数链。--routines --triggers --events存储过程、触发器、事件默认不备份线上丢过数据的人都知道这三个不开等于埋雷。注意--databases app_db后面跟着的是库名列表备份文件里会带 CREATE DATABASE 语句如果不加这个参数恢复时需要手动建库。这个细节也是考试题爱挖的坑。4.2 GTID 主从复制change master to 的参数清单与两个开关复制是 1z0-888 的另一座大山GTID 模式是 5.7 复制题的核心。配置主从时第一步先在主库的 my.cnf 里打开两个开关[mysqld] gtid_modeON enforce_gtid_consistencyON server-id1 log-binmysql-bin参数说明gtid_modeON开启 GTIDenforce_gtid_consistencyON禁止执行会导致 GTID 不一致的语句比如老版本里 CREATE TABLE ... SELECT 会被拒。5.7.6 之后对这种语句会自动改写为两条语句执行但题库如果还在考“GTID 下不能执行 CREATE TABLE ... SELECT”你要看清题干描述的是哪个版本行为。从库执行CHANGE MASTER TO MASTER_HOST192.168.1.10, MASTER_PORT3306, MASTER_USERrepl, MASTER_PASSWORDStrongPass_1, MASTER_AUTO_POSITION1, MASTER_CONNECT_RETRY10; START SLAVE; SHOW SLAVE STATUS\G逻辑说明与参数说明MASTER_AUTO_POSITION1是 GTID 复制的关键它告诉从库用 GTID 自动定位 binlog 位置而不是手工指定MASTER_LOG_FILE和MASTER_LOG_POS。考试里如果出现“使用 GTID 复制时 change master to 必须省略哪两个参数”答案就是那两个。MASTER_CONNECT_RETRY是断线重连间隔默认 60 秒太慢练习题里经常会问“网络抖动后从库多久自动重连”就是考这个参数。SHOW SLAVE STATUS 的输出里Slave_IO_Running和Slave_SQL_Running必须都是 YesLast_IO_Errno和Last_SQL_Errno是排错入口每次在实验机做复制实验都要养成看完这两个字段再下结论的习惯。4.3 性能诊断从 performance_schema 和 sys schema 读真实负载性能诊断在 1z0-888 里占比不如备份和复制但它是把前面所有知识串起来的那根线。5.7 的 performance_schema 默认开启sys schema 也在初始化时就装好了这两样东西就是考试里“看监控图选结论”那类题的真实来源。-- 查看当前非空闲连接在做什么 SELECT THREAD_ID, PROCESSLIST_ID, PROCESSLIST_USER, PROCESSLIST_DB, PROCESSLIST_COMMAND, PROCESSLIST_TIME FROM performance_schema.threads WHERE PROCESSLIST_COMMAND Sleep; -- 按语句类型看累计耗时排行 SELECT DIGEST_TEXT, COUNT_STAR, AVG_TIMER_WAIT / 1e12 AS avg_ms FROM performance_schema.events_statements_summary_by_digest ORDER BY AVG_TIMER_WAIT DESC LIMIT 10;逻辑说明第一条语句回答“现在数据库上谁在跑、跑了多久”是处理连接数打满这种故障的第一反应。第二条语句回答“哪些 SQL 消耗了最多时间”DIGEST_TEXT 是去掉了具体参数值之后的模板文本ORDER BY AVG_TIMER_WAIT DESC 找到的就是需要优化的慢语句。docx 里不少“诊断题”问的是“DBA 第一步应该看什么”答案往往是查 performance_schema 而不是直接改参数这个判断顺序比 SQL 本身更重要。sys schema 则是 performance_schema 的“包装视图”比如sys.session、sys.processlist、sys.io_global_by_file_by_bytes查询起来更短。考试里如果遇到“哪张表能直接反映当前会话状态”优先往 sys 和 performance_schema 方向答而不是去 information_schema 里翻。5. 背题库容易翻车的 5 个坑docx 版本过期、答案错误、环境不一致5.1 题库还在教你 mysql_install_db初始化命令变了现象docx 里写“初始化数据目录执行 mysql_install_db --datadir/var/lib/mysql”你照做终端提示 command not found。原因mysql_install_db 在 MySQL 5.7 中被移除了替代方案是mysqld --initialize。这份题库的原始来源是 5.6 甚至更早的复习资料作者只改了封面没改内容。解决所有涉及初始化的题一律以mysqld --initialize --usermysql为准。考试题干如果出现 mysql_install_db 这个名词它大概率是干扰项尤其当另一个选项是 mysqld --initialize 时选后者。5.2 拿 MySQL 8.0 练 5.7 的题认证插件先给你一击现象你在本机装了 MySQL 8.0用工具连上去密码是对的但死活报认证失败或提示 mysql_native_password 已废弃。原因8.0 默认认证插件是 caching_sha2_password5.7 默认是 mysql_native_password。1z0-888 考的是 5.7 行为题目里说“默认认证插件是哪一种”答案锁定 mysql_native_password可你用 8.0 环境验证连用户都建不出来直接怀疑人生。解决实验环境必须锁 5.7。已经装了 8.0 的机器建议单独开虚拟机或容器跑一个 5.7别在 8.0 里做 1z0-888 的练习。这条是血泪经验我见过有人在 8.0 上练了一个星期最后考试遇到“5.7 默认认证插件”还是选错就是被环境带偏了。5.3 临时密码找不到以及 validate_password 的连环锁现象mysqld --initialize 执行完grep 临时密码日志里没有 [Note] 那一行登录不进去。原因常见原因是错误日志路径没配置或者 datadir 里已经有旧数据初始化中途退出。另一个相关场景是你找到了临时密码、登录成功但 ALTER USER 把密码改成 123456 时报 ERROR 1819提示密码不满足策略。解决先确认 datadir 为空再初始化日志路径用默认的 /var/log/mysqld.log启动一次 mysqld 后再 grep。密码策略问题可以临时调低SET GLOBAL validate_password_policyLOW;改完再 ALTER USER测试结束后改回 MEDIUM。考试里问“为什么改不了弱密码”答案就是 validate_password 默认策略这是个高频送分题。5.4 克隆虚拟机做复制实验server-uuid 撞车现象你从模板克隆了两台 CentOS 虚拟机主从都装好 MySQL 后配置复制从库 IO 线程起不来错误日志里写“master and slave have equal MySQL server UUIDs”。原因克隆虚拟机时/var/lib/mysql/auto.cnf 被原样复制两台机器上的 server-uuid 完全一样。GTID 复制要求每个实例的 UUID 唯一不然无法区分事务来源。解决改从库的 auto.cnf把 server-uuid 换掉重启 MySQLcat /var/lib/mysql/auto.cnf # 修改 UUID 后重启 systemctl restart mysqld这个坑在 docx 里一般只占一道题但自己做实验时能卡你半小时。迁移虚拟机、打包镜像、复制数据目录之后都要检查 auto.cnf这条可以写进你的复盘表。5.5 答案把 tx_isolation 当标准答案5.7 的变量改名陷阱现象docx 某题问“查看当前隔离级别正确命令是哪个”给出的标准答案里只有 SELECT tx_isolation。原因题库没有同步 5.7 的变量改名。tx_isolation 是 5.6 及之前的变量名5.7 里改成了 transaction_isolationtx_isolation 只是兼容别名并且被标记为废弃。解决考试时优先选 transaction_isolation 开头的选项。如果两个选项同时出现选官方推荐名那个。这类“新老变量名并存”的考点在 5.7 里不止一个比如 sql_mode、optimizer_switch 都有类似情况刷题时看到变量名要顺手去实验机查一下当前版本的真实输出。6. 考前一周把题库“清零”两轮筛题和一份冷启动预案6.1 两轮筛题法把 docx 越刷越薄考前一周别再从头到尾刷整本 docx。我的做法是第一轮快速过凡是一眼能写出答案的题直接略过凡是犹豫超过五秒的题在题号前标一个记号。第二轮只做这些标记题做对一道就擦掉一道。到考前一天文档里剩下的就是你反复错的那几道题这时候集中看它们的复盘表比刷一百道新题有用得多。这个动作的价值在于它把备考从“覆盖所有知识点”变成了“只处理知识盲点”效率差好几倍。6.2 三分钟冷启动预案杀库、恢复、追 binlog我给自己的最后一个练习叫“三分钟冷启动”把实验机的 mysqld 服务停掉只允许自己用三分钟把数据库恢复到“出事前一秒”的状态。步骤固定为先确认 binlog 文件还在再恢复全量备份最后用 mysqlbinlog 追到指定时间点。# 模拟故障进程异常退出数据目录还在 systemctl stop mysqld # 查看现有 binlog 文件确定追哪个文件 ls -lt /var/lib/mysql/binlog.* mysqlbinlog --stop-datetime2025-01-20 03:00:00 \ /var/lib/mysql/binlog.000012 /tmp/recover.sql # 全量备份恢复后回放增量日志 mysql -uroot -p /backup/app_db.sql mysql -uroot -p /tmp/recover.sql参数说明--stop-datetime用于指定恢复边界这个时间点要在误操作发生之前。如果 binlog 里有 DROP TABLE 或 DELETE 这类破坏性语句直接整段回放等于二次事故所以要先把生成的 recover.sql 打开看一眼再用 grep 过滤掉危险语句。这个练习做完1z0-888 里的备份恢复场景题基本都变成了你已经做过一遍的流程。考 1z0-888 那年我最后一周没再碰 docx只干一件事每天把主从复制干掉一次再拉起来每天做一次备份恢复冷启动。考场上有两道复制判断题和一个恢复场景题我等于把原题提前做过了。这套办法救过我不少次希望也能帮到你。本文还有配套的精品资源点击获取