百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

「MySQL8 OCP 1Z0-908认证考试」题库精讲—第三讲安装配置升级(上)

mhr18 2024-10-18 06:43 22 浏览 0 评论

第三讲--mysql8.0安装配置升级专题(上)


此专题题目较多,因此分为上中下三部分来讲,此为上篇。




第一题


讲解:


  • 此题考查的考点是绝大多数人都弄不明白的#innodb_temp、ibtmp1、tmpdir、tmp_table_size


我来讲一下:


mysql中存在两个InnoDB Temporary Tablespaces:

  • session temporary tablespace($DATADIR/$innodb_temp表空间)

它存放的是user-created temporary tables + internal temporary tables created by the optimizer

  • global temporary tablespace($DATADIR/ibtmp表空间)

它存放的是用户创建的临时表的回滚段 user-created temporary tables rollback segments


tmpdir它就是一个存放临时文件temporary files的地方,主要存放如下内容:

  • load data使用的file,必须放在这个目录才能被读取并load到mysql
  • group by或者order by的临时文件
  • MySQL creates temporary SQL tables that are not hidden and have names that begin with #sql
  • some DDL运行中创建的临时文件,比如rebuild、alter等
  • SELECT创建的临时表存放临时结果


所以:


选项AB是错误的,temporary tables不会创建在tmpdir目录中。


选项D是错误的,internal temporary tables会创建在innodb_temp表空间中。


选项E是错误的,前半句是正确的,但后半句是错的,它应该是located in $DATADIR/$innodb_temp。


因此,选项C正确。


此题我认为是全题库中最好的一道题。




第二题


?讲解:


  • 此题考查的是mysql以二进制安装或者源码编译安装后,如何初始化initlialize的知识点。


  • --initialize 会初始化datadir、创建root的初始化随机密码
  • --initialize-insecure 会初始化datadir、但不会创建root的初始化随机密码




第三题


?讲解:


  • 此题考查的是mysql从低版本升级到mysql8的升级方式知识点


mysql版本升级有两种方式:

  • logical upgrade(逻辑升级)

逻辑升级是指将数据库中的数据通过mysqldump导出为逻辑备份,然后在新安装的高版本数据库中导入。

  • physical upgrade(物理升级)

物理升级是指直接在低版本数据库上执行mysql二进制可执行持续的升级,并升级对应的datafile。


物理升级完成后,数据文件占用空间一般比逻辑升级后的数据文件要大,因为逻辑升级会重建数据文件并导入数据,这样会收缩数据文件的空闲block,而物理升级不会收缩数据文件中的空闲block。

因此选项BF正确。




第四题


?讲解:


  • 此题考查的是远程连接mysql的命令


远程连接mysql需要至少提供以下3个参数:

  • --user
  • --password
  • --host

题目中要求默认连接到world这个schema,那么还需要提供以下参数:

  • --database=world


--socket是只有linux系统才有的,用于连接本地mysql server专用

--shared-memory-base-name是只有windows系统才有的,也是用于连接本地mysql server专用

因此此题选CDEG




第五题


?讲解:


  • 此题考查的是慢查询相关的参数知识点
  • long_query_time--超过此参数值的query就被认为是慢查询
  • log_queries_not_using_indexes--没有使用索引的query都会被记录
  • log_throttle_quries_not_using_indexes--没有使用索引的query每分钟最多被记录这么多次
  • min_examined_row_limit--只有查询的记录数比这个值大的query才会被记录

因此此题选E




第六题


?讲解:


  • 此题考查的是mysql访问启动所必须的最小数据文件知识点


题目中给出的innodb_fast_shutdown=0,是指mysql在关闭之前将redo log、data buffer、ib_buffer都数据都刷新到了对应的文件中,是一种干净(clean)的关机。

因此当整个datadir被删除后,只需要有ibdata1和mysql.ibd这两个系统级表空间就可以启动mysql服务,而ib_logfile、ibtmp1、undo等表空间都可以在启动时重新自动创建。

所以,此题选AB




第七题


?讲解:


  • 此题考查的是mysql8新增的persist关键字,它可以通过sql命令改变mysql的配置参数文件


  • 在之前的版本中,set global [variables_name]=xxx只会改变mysql的运行时设置,而不是改变my.cnf配置文件中的设置;
  • 在现在的版本中,通过新增加的persist参数,可以达到既能改变mysql的运行时设置,又能同步改变my.cnf配置文件中的设置的作用,只不过它是通过新增一个mysqld-auto.cnf文件来记录的这些改变后的值,而不是直接更改my.cnf文件,mysqld-auto.cnf是一个json格式的文件。
  • 当mysql服务启动时,会先读取my.cnf中的配置,再读取mysqld-auto.cnf中的配置,如果有重叠的参数,则用mysqld-auto.cnf中的值覆盖my.cnf中的值。

对应使用的命令是:set persist [variables_name]=xxx,

因此,此题选AE。




第八题


讲解:


  • 此题考查的是mysql的身份验证插件知识点。


在mysql5.6中使用的身份认证插件有以下2种:

  • mysql_native_password --本地身份验证的插件
  • sha256_password -- 实现基本的SHA-256身份验证

在mysql5.7中增加了一种身份认证插件;

  • caching_sha2_password--实现SHA-256身份验证(如sha256_password),它是sha256_password的超集,在服务器端使用缓存以获得更好的性能。

对于mysql各个版本的默认身份认证插件如下:

  • 在MySQL 5.6&5.7中,默认的身份验证插件是 mysql_native_password
  • 在MySQL 8.0中,默认的身份验证插件是caching_sha2_password

为了使MySQL 5.7客户端能够使用通过caching_sha2_password身份验证的帐户连接到8.0及更高版本的服务器 ,MySQL 5.7客户端库和客户端程序都必须支持 caching_sha2_password客户端身份验证插件才行。


题目中描述的是客户端连接已经升级到8.0的mysql服务器端报错找不到caching_sha2_password插件,既然如此,那就让这个客户端用户把基于caching_sha2_password的认证改为基于mysql_native_password的认证即可。
当然,还有一种方式,就是升级客户端程序和库,让它加载caching_sha2_password插件。


看选项:

  • AB选项修改的是mysql8.0服务器端的配置,目的是让它使用caching_sha2_password活sha256_password的认证方式,而实际上它已经是了,不需要这么配置。
  • DE选项是修改客户端使用的这个mysql用户的认证方式为caching_sha2_password和sha256_password,而实际上它已经是了,不需要这么修改。
  • F选项,看上去貌似是可以的,让mysql 8的服务器端使用mysql_native_password插件做认证,但是这种配置只对以后新增加的用户生效,对已经存在的用户并不会改变其认证方式。
  • C选项,修改客户端使用的用户的认证方式为mysql_native_password,这样客户端就不需要再去找caching_sha2_password和sha256_password认证插件了,直接就可以与服务器端连接。

综上,C正确。



补充:
caching_sha2_password插件相比于sha256_password有以下优势:

  • 在服务器端,内存缓存使重新连接的用户可以更快地重新认证以前连接的用户。(此服务器端行为仅在MySQL 8.0和更高版本中实现。)
  • 提供了对使用Unix套接字文件和共享内存协议的客户端连接的支持。

因为caching_sha2_password是MySQL 8.0中的默认身份验证插件,并且提供了该sha256_password身份验证插件的功能的超集 ,使用sha256_password验证的MySQL帐户应改为使用caching_sha2_password 。




第九题


?讲解:


  • 此题考查的是windows平台的mysql集成统一安装工具MySQL Installer知识点。


  • 此工具只适配windows平台
  • 此工具安装mysql产品系列过程中不需要提前手工下载它们,MySQL Installer会自动下载它们
  • 此工具可以基于GUI界面安装,也可以基于命令行方式安装(MySQLInstallerConsole.exe)
  • 此工具可以对已经安装的mysql产品进行升级
  • 此工具提供了几乎oracle mysql产品的全系组件(mysql router、mysql shell、mysql server等)

因此,选项DE正确。




第十题


讲解:


  • 此题考查的是mysql的系统表空间ibdata扩容知识点。


题目中要求是large、busy、warehousing。也就是数据量大、并发高、数据仓库。

如何配置ibdata可以满足长期(long-term)的存储需求呢?

先来强调一下ibdata的规则和特性:

  • ibdata可以配置多个,比如ibdata1、ibdata2.... ibdata
  • 不配置为autoextend,它就不会自动增大

基于以上两点规则和特性,我们来看选项:

选项A :ibdata1:12M;ibdata2:12M:autoextend,配置了2个ibdata,且最后一个ibdata可以自动扩容(autoextend),满足long-term的需求,且符合busy和large的需求求。

选项B:ibdata1:12M:autoextend,配置了1个ibdata,但可以自动扩容(autoextend),满足long-term的需求,且符合large的需求,勉强符合busy的需求。

选项C:ibdata1:12M;/tmp/ibdata2:12M:autoextend,配置在/.tmp目录是不能通过的,此处错误。

选项D:ibdata1:12M;ibdata2:12M;ibdata3:12M,虽然配置了3个ibdata,但不会自动扩容(autoextend),无法满足long-term的需求。一旦这3个ibdata初始空间耗尽,则不能再继续写入。

选项E:ibdata1:12M:autoextend;ibdata2:12M:autoextend,配置了2个ibdata,且配置了自动扩容(autoextend),貌似满足,但这个配置是错误的,多个ibdata一起配置的时候,只有最后1个ibdata可以设置为自动扩容(autoextend)。此处错误。

选项F:ibdata1:12M,配置了1个ibdata,且没有自动扩容(autoextend),与选项D同样的错误。

因此,选项AB正确。




第十一题


讲解:


  • 此题考查的是windows平台上mysql支持的协议知识点


Windows平台上,mysql server提供如下协议:

  • TCP/IP
  • named pipes
  • shared memory

Linux平台上,mysql server提供如下协议:

  • TCP/IP
  • socket

因此,选项BDE正确




第十二题


?讲解:


  • 此题考查的知识点是mysql 8安装完成后,systemctl管理mysqld服务的知识点。


题目中描述安装完成mysql并修改了my.cnf参数文件后,执行systemctl start mysqld来启动mysql服务报错。

错误日志中表达了如下信息:

  • 在进程2732报错
  • 从启动到报错的时间是33s

看选项:

选项B错误,如果是disabled,报错是没有mysqld服务,而不是现在的日志信息。

选项C错误,mysql server在有其它mysql进行存在的时候就不会继续启动新的mysqld服务

选项D错误,从日志里看是等了33s,而不是30s。

选项E错误,从日志中无法看出已经启动过1个mysqld服务才关闭当前的启动进程的。

选项A正确。




第三讲上篇结束。





作者:老哥讲数据库

简介:数据库高级架构师,oracle 11g OCM认证,MySQL 5.7 & 8.0 OCP认证。

原创文章,转载请注明来源。

相关推荐

【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报

近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...

医院信息系统突发应急演练记录(医院信息化应急演练)

信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...

一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序

简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...

docker搭建系统环境(docker搭建centos)

Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...

基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)

SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...

Java21杀手级新特性!3行代码性能翻倍

导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...

一文读懂JDK21的虚拟线程(java虚拟线程)

概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...

效率!MacOS下超级好用的Linux虚拟工具:Lima

对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...

所谓SaaS(所谓三维目标一般都应包括)

2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...

ORA-00600 「25027」 「x」报错(报错0xc0000001)

问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...

安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

编译安卓源码(编译安卓源码 电脑配置)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“

2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...

Syslog 日志分析与异常检测技巧(syslog发送日志配置)

系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...

从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)

数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...

取消回复欢迎 发表评论: