Mysqladmin - MySQL服务器管理程序

来自泡泡学习笔记
跳到导航 跳到搜索

mysqladmin是一个用于执行管理操作的客户端。您可以使用它来检查服务器的配置和当前状态,创建和删除数据库等。


调用mysqladmin的方式如下: mysqladmin 选项 命令 [命令-arg] [命令 [命令-arg]] …


mysqladmin支持以下命令。一些命令在命令名称后接受一个参数。

  • create db_name

    创建一个名为db_name的新数据库。

  • debug

    在MySQL 8.0.20之前,告诉服务器将调试信息写入错误日志。连接的用户必须具有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 LOGS SQL语句的日志类型。

  • flush-privileges

    重新加载授权表(与reload相同)。

  • flush-status

    清除状态变量。

  • flush-tables

    刷新所有表。

  • flush-threads

    刷新线程缓存。

  • kill id,id,…

    终止服务器线程。如果给出多个线程ID值,列表中不能有空格。

    要杀死属于其他用户的线程,连接用户必须具有CONNECTION_ADMIN特权(或已弃用的SUPER特权)。

  • password new_password

    设置一个新密码。这将把new_password的值更改为用于通过mysqladmin连接到服务器的帐户的新密码。因此,下次使用mysqladmin(或其他客户端程序)时,您必须指定新密码。

    警告

    使用mysqladmin设置密码应该被认为是不安全的。在某些系统上,您的密码对系统状态程序(如ps)可见,这些程序可能被其他用户调用以显示命令行。MySQL客户端通常在其初始化序列期间用零覆盖命令行密码参数。然而,在此期间仍然存在短暂的可见时间。此外,在某些系统上,这种覆盖策略无效,并且密码仍然对ps可见。(SystemV Unix系统和其他系统可能受此问题影响。)

    如果new_password值包含空格或其他特殊字符,您需要将其用引号括起来。在Windows上,请确保使用双引号而不是单引号;单引号不会被从密码中删除,而是被视为密码的一部分。例如: mysqladmin password “my new password”

    新密码可以在password命令后省略。在这种情况下,mysqladmin提示输入密码值,这使得您可以避免在命令行上指定密码。省略密码值应该在mysqladmin命令行上的最后一个命令上进行。否则,下一个参数将被用作密码。

    注意

    不要在启动服务器时使用–skip-grant-tables选项。不会应用密码更改。即使您在相同的命令行上先使用password命令,然后再使用flush-privileges命令重新启用授权表,因为刷新操作发生在您连接之后,所以也不会应用密码更改。但是,您可以使用mysqladmin flush-privileges命令重新启用授权表,然后使用单独的mysqladmin password命令更改密码。

  • ping

    检查服务器是否可用。mysqladmin的返回状态为0表示服务器正在运行,1表示服务器未运行。即使出现错误,如Access denied,这也意味着服务器正在运行,但拒绝连接,这与服务器未运行不同。

  • processlist

    显示活动服务器线程的列表。这与SHOW PROCESSLIST语句的输出类似。如果使用–verbose选项,输出类似于SHOW FULL PROCESSLIST。

  • reload

    重新加载授权表。

  • refresh

    刷新所有表并关闭并打开日志文件。

  • shutdown

    停止服务器。

  • start-replica

    在副本服务器上启动复制。

  • start-slave

    在副本服务器上启动复制。

  • status

    显示简短的服务器状态消息。

  • stop-replica

    在副本服务器上停止复制。

  • stop-slave

    在副本服务器上停止复制。

  • variables

    显示服务器系统变量及其值。

  • version

    显示服务器版本信息。


所有命令都可以缩写为任何唯一前缀。例如:

$> 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命令的结果会显示以下值:

  • Uptime

    MySQL服务器运行的秒数。

  • Threads

    活动线程(客户端)的数量。

  • Questions

    自服务器启动以来来自客户端的问题(查询)数量。

  • Slow queries

    执行时间超过long_query_time秒的查询数量。

  • Opens

    服务器打开的表的数量。

  • Flush tables

    服务器已执行的flush-*、refresh和reload命令的数量。

  • Open tables

    当前打开的表的数量。


如果您在连接到本地服务器时使用Unix套接字文件执行mysqladmin shutdown,mysqladmin将等待直到服务器的进程ID文件已被删除,以确保服务器已正确停止。


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

选项名称 描述
–bind-address 使用指定的网络接口连接到MySQL服务器
–character-sets-dir 可以查找字符集的目录
–compress 在客户端和服务器之间压缩所有发送的信息
–compression-algorithms 允许与服务器连接的压缩算法
–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错误也继续
–get-server-public-key 从服务器请求RSA公钥
–help 显示帮助消息并退出
–host MySQL服务器所在的主机
–login-path 从.mylogin.cnf读取登录路径选项
–no-beep 发生错误时不发出蜂鸣声
–no-defaults 不读取任何选项文件
–password 连接到服务器时使用的密码
–password1 连接到服务器时使用的第一种多因素认证密码
–password2 连接到服务器时使用的第二种多因素认证密码
–password3 连接到服务器时使用的第三种多因素认证密码
–pipe 使用命名管道(仅限Windows)连接到服务器
–plugin-dir 安装插件的目录
–port 用于连接的TCP/IP端口号
–print-defaults 打印默认选项
–protocol 要使用的传输协议
–relative 在使用–sleep选项时,显示当前值与前一个值之间的差异
–server-public-key-path 包含RSA公钥的文件路径名
–shared-memory-base-name 共享内存连接的共享内存名称(仅限Windows)
–show-warnings 在语句执行后显示警告
–shutdown-timeout 等待服务器关闭的最大秒数
–silent 静默模式
–sleep 在延迟秒数之间重复执行命令
–socket 要使用的Unix套接字文件或Windows命名管道
–ssl-ca 包含受信任的SSL证书颁发机构列表的文件
–ssl-capath 包含受信任的SSL证书颁发机构证书文件的目录
–ssl-cert 包含X.509证书的文件
–ssl-cipher 允许用于连接加密的密码
–ssl-crl 包含证书撤销列表的文件
–ssl-crlpath 包含证书撤销列表文件的目录
–ssl-fips-mode 是否在客户端启用FIPS模式
–ssl-key 包含X.509密钥的文件
–ssl-mode 连接到服务器所需的安全状态
–ssl-session-data 包含SSL会话数据的文件
–ssl-session-data-continue-on-failed-reuse 如果会话重用失败,是否建立连接
–tls-ciphersuites 允许用于加密连接的TLSv1.3密码套件
–tls-version 允许用于加密连接的TLS协议
–user 连接到服务器时使用的MySQL用户名
–verbose 详细模式
–version 显示版本信息并退出
–vertical 垂直打印查询输出行(每列值一行)
–wait 如果无法建立连接,等待并重试而不是中止
–zstd-compression-level 对使用zstd压缩的服务器连接进行压缩的级别