快捷搜索:  汽车  科技

mysql理论知识:MySQL8OCP1Z0-908认证考试

mysql理论知识:MySQL8OCP1Z0-908认证考试所以:tmpdir它就是一个存放临时文件temporary files的地方,主要存放如下内容:mysql中存在两个InnoDB Temporary Tablespaces:它存放的是user-created temporary tables internal temporary tables created by the optimizer它存放的是用户创建的临时表的回滚段 user-created temporary tables rollback segments

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

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


第一题

mysql理论知识:MySQL8OCP1Z0-908认证考试(1)

讲解:

  • 此题考查的考点是绝大多数人都弄不明白的#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理论知识:MySQL8OCP1Z0-908认证考试(2)

讲解:

  • 此题考查的是mysql以二进制安装或者源码编译安装后,如何初始化initlialize的知识点。
  • --initialize 会初始化datadir、创建root的初始化随机密码
  • --initialize-insecure 会初始化datadir、但不会创建root的初始化随机密码

第三题

mysql理论知识:MySQL8OCP1Z0-908认证考试(3)

讲解:

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

mysql版本升级有两种方式:

  • logical upgrade(逻辑升级)

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

  • physical upgrade(物理升级)

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

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

因此选项BF正确。


第四题

mysql理论知识:MySQL8OCP1Z0-908认证考试(4)

讲解:

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

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

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

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

  • --database=world

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

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

因此此题选CDEG


第五题

mysql理论知识:MySQL8OCP1Z0-908认证考试(5)

讲解:

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

因此此题选E


第六题

mysql理论知识:MySQL8OCP1Z0-908认证考试(6)

讲解:

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

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

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

所以,此题选AB


第七题

mysql理论知识:MySQL8OCP1Z0-908认证考试(7)

讲解:

  • 此题考查的是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理论知识:MySQL8OCP1Z0-908认证考试(8)

讲解:

  • 此题考查的是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 。


第九题

mysql理论知识:MySQL8OCP1Z0-908认证考试(9)

讲解:

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

因此,选项DE正确。


第十题

mysql理论知识:MySQL8OCP1Z0-908认证考试(10)

讲解:

  • 此题考查的是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正确。


第十一题

mysql理论知识:MySQL8OCP1Z0-908认证考试(11)

讲解:

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

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

  • TCP/IP
  • named pipes
  • shared memory

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

  • TCP/IP
  • socket

因此,选项BDE正确


第十二题

mysql理论知识:MySQL8OCP1Z0-908认证考试(12)

讲解:

  • 此题考查的知识点是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认证。

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

猜您喜欢: