4.5.2 mysqladmin-MySQL 服务器 Management 程序
mysqladmin是用于执行 Management 操作的 Client 端。您可以使用它来检查服务器的配置和当前状态,创建和删除数据库等等。
像这样调用mysqladmin:
shell> mysqladmin [options] command [command-arg] [command [command-arg]] ...
mysqladmin支持以下命令。某些命令在命令名称后带有一个参数。
创建一个名为* db_name
*的新数据库。
告诉服务器将调试信息写入错误日志。连接的用户必须具有SUPER特权。此信息的格式和内容可能会更改。
这包括有关事件计划程序的信息。参见第 23.4.5 节“事件调度程序状态”。
删除名为* db_name
*的数据库及其所有 table。
显示服务器状态变量及其值。
刷新主机缓存中的所有信息。参见第 5.1.11.2 节“ DNS 查找和主机缓存”。
刷新所有日志。
mysqladmin flush-logs命令允许提供可选的日志类型,以指定要刷新的日志。遵循flush-logs
命令,您可以提供一个空格分隔的以下一种或多种日志类型的列 table:binary
,engine
,error
,general
,relay
,slow
。这些对应于可以为FLUSH LOGS SQL 语句指定的日志类型。
重新加载授权 table(与reload
相同)。
清除状态变量。
刷新所有 table。
刷新线程缓存。
杀死服务器线程。如果给出了多个线程 ID 值,则列 table 中不能有空格。
要杀死属于其他用户的线程,连接的用户必须具有SUPER特权。
就像password
命令一样,但是使用旧的(4.1 之前的)密码哈希格式存储密码。 (请参阅第 6.1.2.4 节“ MySQL 中的密码哈希”。)
此命令已在 MySQL 5.7.5 中删除。
设置新密码。这会将您与mysqladmin一起用于连接到服务器的帐户的密码更改为* new_password
*。因此,下次您使用同一帐户调用mysqladmin(或任何其他 Client 端程序)时,将需要指定新密码。
Warning
使用mysqladmin设置密码应视为不安全。在某些系统上,您的密码对系统状态程序(例如 ps )可见,其他用户可能会调用该密码来显示命令行。 MySQLClient 端通常在初始化序列期间用零覆盖命令行密码参数。但是,仍然存在一个短暂的时间间隔,在此间隔内该值是可见的。同样,在某些系统上,这种覆盖策略无效,并且密码对 ps 仍然可见。 (SystemV Unix 系统以及其他系统可能会遇到此问题.)
如果* new_password
*值包含空格或其他命令解释器专用的字符,则需要将其用引号引起来。在 Windows 上,请确保使用双引号而不是单引号。单引号不会从密码中删除,而是被解释为密码的一部分。例如:
shell> mysqladmin password "my new password"
password
命令后可以省略新密码。在这种情况下,mysqladmin会提示您 Importing 密码值,这使您避免在命令行上指定密码。仅当password
是mysqladmin命令行上的最终命令时,才应忽略密码值。否则,将下一个参数用作密码。
Caution
如果服务器使用--skip-grant-tables选项启动,请不要使用此命令。不会更改密码。即使在同一命令行上在password
命令之前加上flush-privileges
以重新启用授权 table,也是如此,因为在连接之后会进行刷新操作。但是,您可以使用mysqladmin flush-privileges重新启用授权 table,然后使用单独的mysqladmin password命令更改密码。
检查服务器是否可用。如果服务器正在运行,则mysqladmin的返回状态为 0,否则为 1.即使出现诸如Access denied
之类的错误,该值也为 0,因为这意味着服务器正在运行但拒绝了连接,这与服务器未运行不同。
显示活动服务器线程的列 table。这就像SHOW PROCESSLIST语句的输出。如果给出了--verbose选项,则输出类似于显示完整的程序 Lists。 (请参见第 13.7.5.29 节“ SHOW PROCESSLIST 语句”。)
重新加载授权 table。
刷新所有 table,然后关闭并打开日志文件。
停止服务器。
在从属服务器上开始复制。
显示简短的服务器状态消息。
在从属服务器上停止复制。
显示服务器系统变量及其值。
显示来自服务器的版本信息。
所有命令都可以缩短为任何唯一的前缀。例如:
shell> mysqladmin proc stat
+----+-------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+-------+------------------+
| 51 | jones | localhost | | Query | 0 | | show processlist |
+----+-------+-----------+----+---------+------+-------+------------------+
Uptime: 1473624 Threads: 1 Questions: 39487
Slow queries: 0 Opens: 541 Flush tables: 1
Open tables: 19 Queries per second avg: 0.0268
mysqladmin status命令结果显示以下值:
MySQL 服务器已运行的秒数。
活动线程(Client 端)的数量。
自服务器启动以来,来自 Client 端的问题(查询)数。
耗时超过long_query_time秒的查询数。参见第 5.4.5 节“缓慢的查询日志”。
服务器已打开的 table 数。
服务器已执行的flush-*
,refresh
和reload
命令的数量。
当前打开的 table 数。
如果使用 Unix 套接字文件连接到本地服务器时执行mysqladmin shutdown,则mysqladminawait 直到服务器的进程 ID 文件被删除,以确保服务器已正确停止。
mysqladmin支持以下选项,可以在命令行或选项文件的[mysqladmin]
和[client]
组中指定这些选项。有关 MySQL 程序使用的选项文件的信息,请参见第 4.2.2.2 节“使用选项文件”。
table4.13 mysqladmin 选项
Option Name | Description | Introduced | Deprecated |
---|---|---|---|
--bind-address | 使用指定的网络接口连接到 MySQL Server | ||
--compress | 压缩 Client 端和服务器之间发送的所有信息 | ||
--connect-timeout | 连接超时之前的秒数 | ||
--count | 要重复执行命令的迭代次数 | ||
--debug | 编写调试日志 | ||
--debug-check | 程序退出时打印调试信息 | ||
--debug-info | 程序退出时打印调试信息,内存和 CPU 统计信息 | ||
--default-auth | 身份验证插件使用 | ||
--default-character-set | 指定默认字符集 | ||
--defaults-extra-file | 除常规选项文件外,还读取命名的选项文件 | ||
--defaults-file | 只读命名的选项文件 | ||
--defaults-group-suffix | 选项组后缀值 | ||
--enable-cleartext-plugin | 启用明文身份验证插件 | ||
--force | 即使发生 SQL 错误,也要 continue | ||
--get-server-public-key | 从服务器请求 RSA 公钥 | 5.7.23 | |
--help | 显示帮助信息并退出 | ||
--host | MySQL 服务器所在的主机 | ||
--login-path | 从.mylogin.cnf 中读取登录路径选项 | ||
--no-beep | 发生错误时请勿发出哔声 | ||
--no-defaults | 不读取选项文件 | ||
--password | 连接服务器时使用的密码 | ||
--pipe | 使用命名管道连接到服务器(仅 Windows) | ||
--plugin-dir | 安装插件的目录 | ||
--port | 用于连接的 TCP/IP 端口号 | ||
--print-defaults | 打印默认选项 | ||
--protocol | 使用的传输协议 | ||
--relative | 与--sleep 选项一起使用时,显示当前值与先前值之间的差异 | ||
--secure-auth | 不要以旧(4.1 之前)格式向服务器发送密码 | Yes | |
--server-public-key-path | 包含 RSA 公钥的文件的路径名 | 5.7.23 | |
--shared-memory-base-name | 共享内存连接的共享内存名称(仅 Windows) | ||
--show-warnings | 语句执行后显示警告 | ||
--shutdown-timeout | await 服务器关闭的最大秒数 | ||
--silent | Silent mode | ||
--sleep | 重复执行命令,在两次之间睡眠延迟几秒钟 | ||
--socket | Unix 套接字文件或 Windows 命名管道使用 | ||
--ssl | 启用连接加密 | ||
--ssl-ca | 包含受信任的 SSL 证书颁发机构列 table 的文件 | ||
--ssl-capath | 包含受信任的 SSL 证书颁发机构证书文件的目录 | ||
--ssl-cert | 包含 X.509 证书的文件 | ||
--ssl-cipher | 连接加密的允许密码 | ||
--ssl-crl | 包含证书吊销列 table 的文件 | ||
--ssl-crlpath | 包含证书吊销列 table 文件的目录 | ||
--ssl-key | 包含 X.509 密钥的文件 | ||
--ssl-mode | 与服务器连接的所需安全状态 | 5.7.11 | |
--ssl-verify-server-cert | 根据服务器证书的通用名身份验证主机名 | ||
--tls-version | 允许的 TLS 协议进行加密连接 | 5.7.10 | |
--user | 连接服务器时使用的 MySQL 用户名 | ||
--verbose | Verbose mode | ||
--version | 显示版本信息并退出 | ||
--vertical | 垂直打印查询输出行(每列值一行) | ||
--wait | 如果无法构建连接,请 await 并重试,而不是中止 |
- --help,
-?
显示帮助消息并退出。
在具有多个网络接口的计算机上,使用此选项选择用于连接到 MySQL 服务器的接口。
字符集的安装目录。参见第 10.15 节“字符集配置”。
- --compress,
-C
尽可能压缩 Client 端和服务器之间发送的所有信息。参见第 4.2.6 节“连接压缩控制”。
连接超时之前的最大秒数。默认值为 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 时,此选项才可用。使用此选项不是构建 Oracle 提供的 MySQL 发行版二进制文件。
程序退出时,打印一些调试信息。
仅当使用WITH_DEBUG构建 MySQL 时,此选项才可用。使用此选项不是构建 Oracle 提供的 MySQL 发行版二进制文件。
程序退出时,打印调试信息以及内存和 CPU 使用情况统计信息。
仅当使用WITH_DEBUG构建 MySQL 时,此选项才可用。使用此选项不是构建 Oracle 提供的 MySQL 发行版二进制文件。
有关使用哪个 Client 端身份验证插件的提示。参见第 6.2.13 节“可插入身份验证”。
使用* charset_name
*作为默认字符集。参见第 10.15 节“字符集配置”。
在全局选项文件之后但在用户选项文件之前(在 Unix 上)读取此选项文件。如果该文件不存在或无法访问,则发生错误。 * file_name
*如果是相对路径名而不是完整路径名,则相对于当前目录进行解释。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
仅使用给定的选项文件。如果该文件不存在或无法访问,则发生错误。 * file_name
*如果是相对路径名而不是完整路径名,则相对于当前目录进行解释。
exception:即使使用--defaults-file,Client 端程序也读取.mylogin.cnf
。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
不仅阅读常规选项组,还阅读具有常规名称和后缀* str
*的组。例如,mysqladmin通常读取[client]
和[mysqladmin]
组。如果提供了--defaults-group-suffix=_other选项,则mysqladmin也会读取[client_other]
和[mysqladmin_other]
组。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
启用mysql_clear_password
明文身份验证插件。 (请参阅第 6.4.1.6 节“Client 端明文可插入身份验证”。)
- --force,
-f
不要要求确认drop db_name
命令。使用多个命令,即使发生错误也要 continue。
从服务器请求基于 RSA 密钥对的密码交换所需的公共密钥。此选项适用于使用caching_sha2_password
身份验证插件进行身份验证的 Client 端。对于该插件,除非请求,否则服务器不会发送公钥。对于未使用该插件进行身份验证的帐户,将忽略此选项。如果不使用基于 RSA 的密码交换,也将被忽略,例如 Client 端使用安全连接连接到服务器时。
如果给出了--server-public-key-path=file_name并指定了有效的公共密钥文件,则它优先于--get-server-public-key。
有关caching_sha2_password
插件的信息,请参见第 6.4.1.4 节“缓存 SHA-2 可插入身份验证”。
--get-server-public-key选项已添加到 MySQL 5.7.23 中。
- --host=host_name,
-h host_name
连接到给定主机上的 MySQL 服务器。
从.mylogin.cnf
登录路径文件中的命名登录路径中读取选项。 “登录路径”是一个选项组,其中包含一些选项,这些选项指定要连接到哪个 MySQL 服务器以及要作为身份验证的帐户。要创建或修改登录路径文件,请使用mysql_config_editorUtil。参见第 4.6.6 节“ mysql_config_editor-MySQL 配置 Util”。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
- --no-beep,
-b
抑制由于错误(例如连接服务器失败)而默认发出的警告蜂鸣声。
不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败,则可以使用--no-defaults来防止读取它们。
exception 是在所有情况下都读取.mylogin.cnf
文件(如果存在)。这样即使在使用--no-defaults的情况下,也可以通过比命令行更安全的方式指定密码。 (.mylogin.cnf
由mysql_config_editorUtil 创建。请参见第 4.6.6 节“ mysql_config_editor-MySQL 配置 Util”。)
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
- --password[=password],
-p[password]
用于连接服务器的 MySQL 帐户的密码。密码值是可选的。如果未给出,mysqladmin提示 Importing 一个。如果提供,则--password=或-p
与后面的密码之间必须没有空格。如果未指定密码选项,则默认为不发送密码。
在命令行上指定密码应该被认为是不安全的。为避免在命令行上 Importing 密码,请使用选项文件。参见第 6.1.2.1 节,“最终用户密码安全准则”。
要明确指定没有密码并且mysqladmin不应提示 Importing 密码,请使用--skip-password选项。
- --pipe,
-W
在 Windows 上,使用命名管道连接到服务器。仅当服务器在启用了named_pipe系统变量的情况下启动以支持命名管道连接时,此选项才适用。此外,构建连接的用户必须是named_pipe_full_access_group系统变量指定的 Windows 组的成员。
在其中查找插件的目录。如果--default-auth选项用于指定身份验证插件,但mysqladmin找不到它,请指定此选项。参见第 6.2.13 节“可插入身份验证”。
- --port=port_num,
-P port_num
对于 TCP/IP 连接,使用的端口号。
打印程序名称及其从选项文件中获取的所有选项。
有关此选项和其他选项文件选项的更多信息,请参见第 4.2.2.3 节“影响选项文件处理的命令行选项”。
用于连接到服务器的传输协议。当其他连接参数通常导致使用您想要的协议以外的协议时,此功能很有用。有关允许值的详细信息,请参见第 4.2.5 节“连接传输协议”。
- --relative,
-r
与--sleep选项一起使用时,显示当前值与先前值之间的差异。此选项仅适用于extended-status
命令。
显示由于执行发送到服务器的语句而导致的警告。
不要以旧(4.1 之前)格式向服务器发送密码。这样可以防止除使用较新密码格式的服务器以外的其他连接。
从 MySQL 5.7.5 开始,此选项已被弃用,并将在以后的 MySQL 版本中删除。它始终处于启用状态,尝试禁用它(--skip-secure-auth,--secure-auth=0)会产生错误。在 MySQL 5.7.5 之前,此选项默认为启用,但可以禁用。
Note
使用 4.1 之前的哈希方法的密码比使用本地密码哈希方法的密码安全性较低,应避免使用。不建议使用 4.1 之前的密码,并在 MySQL 5.7.5 中删除了对它们的支持。有关帐户升级的说明,请参阅第 6.4.1.3 节“迁移到 4.1 版之前的密码哈希和 mysql_old_password 插件”。
PEM 格式的文件的路径名,其中包含服务器用于基于 RSA 密钥对的密码交换所需的公用密钥的 Client 端副本。此选项适用于使用sha256_password
或caching_sha2_password
身份验证插件进行身份验证的 Client 端。对于未通过这些插件之一进行身份验证的帐户,将忽略此选项。如果不使用基于 RSA 的密码交换,也将被忽略,例如 Client 端使用安全连接连接到服务器时。
如果给出了--server-public-key-path=file_name并指定了有效的公共密钥文件,则它优先于--get-server-public-key。
对于sha256_password
,仅当使用 OpenSSL 构建 MySQL 时,此选项才适用。
有关sha256_password
和caching_sha2_password
插件的信息,请参见第 6.4.1.5 节“ SHA-256 可插拔身份验证”和第 6.4.1.4 节“缓存 SHA-2 可插入身份验证”。
--server-public-key-path选项已添加到 MySQL 5.7.23 中。
在 Windows 上,共享内存名称,用于使用共享内存与本地服务器构建的连接。默认值为MYSQL
。共享内存名称区分大小写。
仅当在启用了shared_memory系统变量以支持共享内存连接的情况下启动服务器时,此选项才适用。
await 服务器关闭的最大秒数。默认值为 3600(1 小时)。
- --silent,
-s
如果无法构建与服务器的连接,请以静默方式退出。
- --sleep=delay,
-i delay
重复执行命令,在此之间睡眠* delay
*秒。 --count选项确定迭代次数。如果未提供--count,则mysqladmin无限期执行命令,直到被中断为止。
- --socket=path,
-S path
对于到localhost
的连接(要使用的 Unix 套接字文件),或者在 Windows 上,要使用的命名管道的名称。
在 Windows 上,仅当在启用了named_pipe系统变量以支持命名管道连接的情况下启动服务器时,此选项才适用。此外,构建连接的用户必须是named_pipe_full_access_group系统变量指定的 Windows 组的成员。
以--ssl
开头的选项指定是否使用 SSL 连接到服务器,并指示在何处查找 SSL 密钥和证书。参见加密连接的命令选项。
加密连接允许的 TLS 协议。该值是一个或多个逗号分隔的协议名称的列 table。可以为此选项命名的协议取决于用于编译 MySQL 的 SSL 库。有关详细信息,请参见第 6.3.2 节“加密的连接 TLS 协议和密码”。
MySQL 5.7.10 中添加了此选项。
- --user=user_name,
-u user_name
用于连接到服务器的 MySQL 帐户的用户名。
- --verbose,
-v
详细模式。打印有关程序功能的更多信息。
- --version,
-V
显示版本信息并退出。
- --vertical,
-E
垂直打印输出。这类似于--relative,但垂直打印输出。
- --wait[=count],
-w[count]
如果无法构建连接,请 await 并重试,而不是中止。如果给出* * count
*值,则 table 示重试的次数。默认值为一次。