当前位置: 首页 > article >正文

MySQL OCP888题解071-干净关闭MySQL服务器

文章目录

  • 1、原题
    • 1.1、英文原题
    • 1.2、答案
  • 2、题目解析
    • 2.1、题干解析
    • 2.2、选项解析
  • 3、知识点
    • 3.1、知识点1:mysqladmin——MySQL服务器管理程序
      • 3.1.1、mysqladmin概要介绍
      • 3.1.2、mysqladmin支持的命令
      • 3.1.3、mysqladmin支持的选项
    • 3.2、知识点2:MySQL的安装布局
    • 3.3、知识点3:mysql.server MySQL服务器启动脚本
    • 3.4、知识点4:mysqld_safe MySQL服务器启动脚本
  • 4、总结

1、原题

1.1、英文原题

1.2、答案

C、D

2、题目解析

2.1、题干解析

本题考察mysqladmin和mysql服务器的知识。

2.2、选项解析

  1. mysqld_safe是在Unix上启动mysqld服务器的推荐方式,在Linux上没有,所以选项A错误。
  2. Unix和类Unix系统上的MySQL发行版包括一个名为mysql.server的脚本,它使用mysqld_safe启动MySQL服务器。如果你使用Linux服务器RPM包(MySQL-server-VERSION.rpm),或本地Linux包安装,mysql.server脚本可以安装在/etc/init.d目录下,名称为mysqld或mysql。可以通过mysql.server脚本启停MySQL服务器。所以选项C正确。
  3. mysqladmin支持通过shutdown关闭MySQL服务器,因此选项D正确。

3、知识点

3.1、知识点1:mysqladmin——MySQL服务器管理程序

官方参考文档

3.1.1、mysqladmin概要介绍

mysqladmin是一个用于执行管理操作的客户端。你可以用它来检查服务器的配置和当前状态,创建和删除数据库,以及更多。像这样调用mysqladmin:

mysqladmin [options] command [command-arg] [command [command-arg]] ...

3.1.2、mysqladmin支持的命令

  • mysqladmin支持以下命令。一些命令在命令名称后面需要一个参数:
  • create db_name:创建一个名为db_name的新数据库。
  • debug:告诉服务器将调试信息写到错误日志中。连接的用户必须有SUPER权限。该
  • drop db_name:删除名为db_name的数据库和它的所有表。
  • extended-status:显示服务器状态变量和它们的值。
  • flush-hosts:冲刷主机缓存中的所有信息。
  • flush-logs [log_type …冲刷所有日志。mysqladmin flush-logs命令允许给出可选的日志类型,以指定要冲洗哪些日志。在flush-logs命令之后,你可以提供一个以空格分隔的列表,包括以下一个或多个日志类型:binary, engine, error, general, relay, slow。
  • flush-privileges:重新加载授予表(与reload相同)。
  • flush-status:清除状态变量。
  • flush-tables:冲刷所有表。
  • flush-threads:冲刷线程缓存。
  • kill id,id,…:杀死服务器线程。如果给出了多个线程ID值,列表中不能有空格。要杀死属于其他用户的线程,连接的用户必须有SUPER权限。
  • old-password new_password:这与密码命令相似,但使用旧的(4.1之前)密码隐藏格式来存储密码。这个命令在MySQL 5.7.5中被删除。
    • password new_password:设置一个新的密码。这将把你使用mysqladmin连接到服务器的账户的密码改为new_password。因此,当你下次使用同一账户调用mysqladmin(或任何其他客户端程序)时,你必须指定新的密码。使用mysqladmin设置密码应该被认为是不安全的。
    • 如果new_password值包含空格或其他对你的命令解释器来说是特殊的字符,你需要用引号把它括起来。在Windows上,一定要使用双引号,而不是单引号;单引号不会从密码中剥离,而是被解释为密码的一部分。比如说:mysqladmin password “my new password”
    • 新的密码可以在密码命令后面省略。在这种情况下,mysqladmin会提示密码值,这使你能够避免在命令行中指定密码。只有当password是mysqladmin命令行上的最后一条命令时,才应省略密码值。否则,下一个参数将被作为密码。
  • ping:检查服务器是否可用。如果服务器正在运行,mysqladmin的返回状态为0,如果不运行则为1。即使在出现Access denied这样的错误时也是0,因为这意味着服务器在运行但拒绝连接,这与服务器不运行是不同的。
  • processlist:显示活动的服务器线程的列表。这就像SHOW PROCESSLIST语句的输出。如果给出了–verbose选项,输出就像SHOW FULL PROCESSLIST一样。
  • reload:重新加载Grant表。
  • refresh:冲刷所有的表,关闭和打开日志文件。
  • shutdown:停止服务器。所以选项D是正确的。
  • start-slave:在一个复制服务器上启动复制。
  • status:显示一个简短的服务器状态信息。
  • stop-slave:在一个复制服务器上停止复制。
  • variables:显示服务器的系统变量和它们的值。
  • version:显示来自服务器的版本信息。

3.1.3、mysqladmin支持的选项

mysqladmin支持下列选项,这些选项可以在命令行中或在选项文件的[mysqladmin]和[client]组中指定:

  • –help,-?:显示一个帮助信息并退出。
  • –bind-address=ip_address:在有多个网络接口的计算机上,使用该选项选择用于连接MySQL服务器的接口。
  • –character-sets-dir=dir_name:安装字符集的目录。
  • –compress, --C:如果可能的话,压缩客户端和服务器之间发送的所有信息。
  • –connect-timeout=value:连接超时前的最大秒数。默认值是43200(12小时)。
  • –count=N, -c N:如果给定了–sleep选项,为重复执行命令所做的迭代次数。
  • –debug[=debug_options], -# [debug_options] :写一个调试日志。一个典型的debug_options字符串是d:t:o,file_name。默认是d:t:o,/tmp/mysqladmin.trace。这个选项只有在使用WITH_DEBUG构建MySQL时才可用。甲骨文公司提供的MySQL发行版二进制文件不使用此选项构建。
  • –debug-check:在程序退出时打印一些调试信息。这个选项只有在使用WITH_DEBUG构建MySQL时才可用。甲骨文公司提供的MySQL发行版二进制文件不使用此选项构建。
  • –debug-info:在程序退出时打印调试信息以及内存和CPU的使用统计。这个选项只有在使用WITH_DEBUG构建MySQL时才可用。甲骨文公司提供的MySQL发行版二进制文件不使用此选项构建。
  • –default-auth=plugin:关于使用哪个客户端认证插件的提示。
  • –default-character-set=charset_name:使用charset_name作为默认字符集。
  • –defaults-extra-file=file_name:在全局选项文件之后,但(在Unix中)在用户选项文件之前读取这个选项文件。如果该文件不存在或无法访问,就会发生错误。如果file_name不是一个绝对路径名,它将被解释为与当前目录相对。
  • –defaults-file=file_name:只使用给定的选项文件。如果该文件不存在或无法访问,会发生错误。如果file_name不是一个绝对路径名,它将被解释为相对于当前目录。
  • –defaults-group-suffix=str:不仅读取通常的选项组,而且还读取具有通常名称和后缀str的组。例如,mysqladmin通常读取【client】和【mysqladmin】组。如果这个选项被赋予–defaults-group-suffix=_other,mysqladmin也会读取[client_other][mysqladmin_other]组。
  • –enable-cleartext-plugin:启用mysql_clear_password明文认证插件。
  • –force, --f:不要求对drop db_name命令进行确认。对于多个命令,即使发生错误也要继续。
  • –get-server-public-key:向服务器请求基于RSA密钥对的密码交换所需的公钥。这个选项适用于使用caching_sha2_password认证插件进行认证的客户端。对于该插件,除非要求,否则服务器不会发送公钥。对于不使用该插件进行认证的账户,该选项被忽略。如果不使用基于RSA的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时的情况。如果给出了–server-public-key-path=file_name,并且指定了一个有效的公钥文件,它将优先于–get-server-public-key。
  • –host=host_name, -h host_name:连接到指定主机上的MySQL服务器。
  • –login-path=name:从.mylogin.cnf登录路径文件中的指定登录路径中读取选项。一个 "登录路径 "是一个选项组,包含指定连接哪个MySQL服务器和以哪个账户进行验证的选项。
  • –no-beep, -b:抑制默认情况下对错误(如连接服务器失败)发出的警告声。
  • –no-defaults:不读取任何选项文件。如果程序启动失败是由于从选项文件中读取了未知的选项,可以用–no-defaults来阻止它们被读取。例外的情况是,如果.mylogin.cnf文件存在,在任何情况下都会被读取。这样,即使在使用–no-defaults的情况下,也可以用比在命令行上更安全的方式指定密码。
  • –password[=password], -p[password]:用于连接到服务器的MySQL帐户的密码。密码值是可选的。如果没有给出,mysqladmin会提示输入密码。如果给出,–password=或-p与后面的密码之间不能有空格。如果没有指定密码选项,默认为不发送密码。
  • –pipe,-W:在Windows中,使用命名管道连接到服务器。这个选项只有在服务器启动时启用了named_pipe系统变量以支持命名管道连接时才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的Windows组的成员。
  • –plugin-dir=dir_name:寻找插件的目录。如果使用–default-auth选项指定一个认证插件,但mysqladmin没有找到它,则指定这个选项。
  • –port=port_num, -P port_num:对于TCP/IP连接,要使用的端口号。
  • –print-defaults:打印程序名称和它从选项文件中获得的所有选项。
  • –protocol={TCP|SOCKET|PIPE|MEMORY}:连接到服务器时使用的传输协议。当其他连接参数通常会导致使用你想要的协议之外的协议时,它是有用的。
  • –relative,-r:当与–sleep选项一起使用时,显示当前值和之前值之间的差异。这个选项只在扩展状态命令中起作用。
  • –show-warnings:显示因执行发送到服务器的语句而产生的警告。
  • –secure-auth:不要向服务器发送旧的(4.1以前)格式的密码。这可以防止连接,除非是使用较新密码格式的服务器。从MySQL 5.7.5开始,这个选项已被废弃;预计它将在未来的MySQL版本中被删除。它总是被启用,试图禁用它(–skip-secure-auth,–secure-auth=0)会产生一个错误。在MySQL 5.7.5之前,该选项默认是启用的,但可以禁用。
  • –server-public-key-path=file_name: PEM格式文件的路径名称,该文件包含服务器为基于RSA密钥对的密码交换而要求的客户端公钥副本。该选项适用于使用sha256_password或caching_sha2_password认证插件进行认证的客户端。对于不使用这些插件进行认证的账户,该选项被忽略。如果不使用基于RSA的密码交换,它也会被忽略,就像客户端使用安全连接连接到服务器时的情况。如果给出了–server-public-key-path=file_name,并指定了一个有效的公钥文件,它将优先于–get-server-public-key。对于sha256_password,该选项仅在MySQL使用OpenSSL构建时适用。在MySQL 5.7.23中增加了 --server-public-key-path选项。
  • –shared-memory-base-name=name:在Windows中,共享内存的名称,用于使用共享内存与本地服务器的连接。默认值是MYSQL。共享内存的名称是区分大小写的。这个选项只适用于服务器在启动时启用了shared_memory系统变量以支持共享内存连接。
  • –shutdown-timeout=value:等待服务器关闭的最大秒数。默认值是3600(1小时)。
  • –silent,-s:如果不能建立与服务器的连接,则默默退出。
  • –sleep=delay, -i delay:反复执行命令,中间有延迟秒数的睡眠。–count选项决定了迭代的数量。如果没有给出–count,mysqladmin将无限期地执行命令,直到被打断。
  • –socket=path, -S path:对于与localhost的连接,要使用Unix套接字文件,或者在Windows上,要使用命名的管道名称。在Windows中,只有当服务器在启动时启用了named_pipe系统变量以支持命名管道连接时,这个选项才适用。此外,进行连接的用户必须是由named_pipe_full_access_group系统变量指定的Windows组的成员。
  • –ssl*:以 --ssl 开头的选项指定是否使用加密方式连接到服务器,并指出在哪里可以找到SSL密钥和证书。
  • –tls-version=protocol_list:用于加密连接的允许的TLS协议。该值是一个由一个或多个逗号分隔的协议名称组成的列表。可为该选项命名的协议取决于用于编译MySQL的SSL库。这个选项是在MySQL 5.7.10中添加的。
  • –user=user_name, -u user_name:用于连接到服务器的MySQL账户的用户名。
  • –verbose, -v:详细模式。
  • –version, -V:显示版本信息并退出。
  • –vertical, -E:垂直打印输出。这与–relative类似,但是垂直打印输出。
  • –wait[=count], -w[count]:如果连接不能建立,等待并重试,而不是放弃。如果给了一个计数值,它表示重试的次数。默认是一次。

3.2、知识点2:MySQL的安装布局

官方参考文档

  • 客户端程序和脚本:/usr/bin
  • mysqld服务器:/usr/sbin
  • 数据目录:/var/lib/mysql
  • 异常日志文件:
    • 对于RHEL, Oracle Linux, or CentOS:/var/lib/mysql/host_name.err
    • 对于SLES: /var/log/mysql/mysqld.log
  • 系统V的启动脚本:/etc/init.d/mysql
  • Systemd服务:mysql
  • Pid文件:/var/lib/mysql/host_name.pid
  • Unix用户手册:/usr/share/man
  • 头文件:/usr/include/mysql
  • 库文件:/usr/lib/mysql
  • Socket文件:/var/lib/mysql/mysql.sock
  • 杂项支持文件(例如,错误信息,和字符集文件):/usr/share/mysql

3.3、知识点3:mysql.server MySQL服务器启动脚本

Unix和类Unix系统上的MySQL发行版包括一个名为mysql.server的脚本,它使用mysqld_safe启动MySQL服务器。要使用mysql.server脚本手动启动或停止服务器,请在命令行中用start或stop参数调用它。

mysql.server start
mysql.server stop:mysql.server stop通过向服务器发送一个信号来停止它。你也可以通过执行mysqladmin shutdown来手动停止服务器。

如果你使用Linux服务器RPM包(MySQL-server-VERSION.rpm),或本地Linux包安装,mysql.server脚本可以安装在/etc/init.d目录下,名称为mysqld或mysql。
mysql.server从选项文件的[mysql.server]和[mysqld]部分读取选项。为了向后兼容,它也会读取[mysql_server]部分。

mysql.server脚本支持下表中所示的选项。如果指定,它们必须放在选项文件中,而不是在命令行中。mysql.server只支持start和stop作为命令行参数。

  • basedir=dir_name:到MySQL安装目录的路径。
  • datadir=dir_name:到MySQL数据目录的路径。
  • pid-file=file_name:服务器应在其中写入其进程ID的文件的路径名称。服务器在数据目录中创建该文件,除非给出绝对路径名以指定一个不同的目录。如果没有给出这个选项,mysql.server使用默认值host_name.pid。传递给mysqld_safe的PID文件值覆盖了[mysqld_safe]选项文件组中指定的任何值。因为mysql.server读取[mysqld]选项文件组,而不是[mysqld_safe]组,你可以通过在[mysqld_safe]和[mysqld]组中放置相同的pid文件设置,确保mysqld_safe从mysql.server调用时获得与手动调用时相同的值。
  • service-startup-timeout=seconds:等待确认服务器启动的时间,以秒为单位。如果服务器没有在这个时间内启动,mysql.server将以错误退出。默认值是900。值为0意味着完全不等待启动。负值意味着永远等待(没有超时)。

官方参考文档

3.4、知识点4:mysqld_safe MySQL服务器启动脚本

mysqld_safe是在Unix上启动mysqld服务器的推荐方式。mysqld_safe增加了一些安全特性,例如当发生错误时重新启动服务器,并将运行时信息记录到错误日志中。

  • 对于一些Linux平台,从RPM或Debian软件包中安装的MySQL包括用于管理MySQL服务器启动和关闭的systemd支持。在这些平台上,mysqld_safe不被安装,因为它是不必要的。
  • 在使用systemd管理服务器的平台上不使用mysqld_safe的一个影响是,不支持在选项文件中使用[mysqld_safe]或[safe_mysqld]部分,并可能导致意外行为。

官方参考文档

4、总结

  1. mysqld_safe是在Unix上启动mysqld服务器的推荐方式,在Linux上没有。
  2. Unix和类Unix系统上的MySQL发行版包括一个名为mysql.server的脚本,它使用mysqld_safe启动MySQL服务器。如果你使用Linux服务器RPM包(MySQL-server-VERSION.rpm),或本地Linux包安装,mysql.server脚本可以安装在/etc/init.d目录下,名称为mysqld或mysql。可以通过mysql.server脚本启停MySQL服务器。
  3. mysqladmin支持通过shutdown关闭MySQL服务器。

http://www.kler.cn/a/6024.html

相关文章:

  • 使用python将多个Excel表合并成一个表
  • 根据docker file 编译镜像
  • 【Arm】Arm 处理器的半主机(semihosting)机制
  • IDEA 字符串拼接符号“+”位于下一行的前面,而不是当前行的末尾
  • PHP语言的数据库编程
  • Unity-Mirror网络框架-从入门到精通 总目录
  • Matlab实现PCA算法(附上完整仿真源码)
  • AD360自助式密码管理
  • ActiViz.NET 9.2.2023 Crack
  • ToBeWritten之物联网通信接口调试
  • react常用语法
  • 2023年 合肥市庐阳区信息学竞赛区赛 小学组
  • shiro知识点梳理
  • Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
  • ES、MongoDB、HBase的区别和使用场景
  • 一起Talk Android吧(第五百三十六回:RxJava中的事件转换)
  • 浅谈常量字符串
  • java基础:java泛型相关内容
  • 代码管理平台Codeup测评
  • 蓝桥杯第15天(Python版)(数论)
  • 【Ruby学习笔记】1.Ruby的简介、环境、Linux安装及Windows安装
  • 高级Java工程师面试题经典面试题1220道(附答案)
  • Python 自建项目上传到 PyPI 之后通过 pip 可安装
  • 自己动手写CPU——第一篇
  • ChatGPT AI国内免魔法使用
  • 命令行上的数据科学第二版 二、开始