一、mysqladmin工具介绍

  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命令,你可以提供一个或多个以下的日志类型的空格分隔的列表:binary, engine,error, general,relay, slow。这些对应于可以为FLUSH LOGSSQL语句指定的日志类型。
  • flush-privileges
    重新加载授权表(与相同reload)。
  • flush-status
    清除状态变量。
  • flush-tables
    刷新所有表。
  • flush-threads
    刷新线程缓存。
  • kill id,id,…
    杀死服务器线程。如果给出了多个线程ID值,则列表中不得有空格。
    要杀死属于其他用户的线程,连接的用户必须具有SUPER 特权。
  • old-password new_password
    就像password命令一样,但是使用旧的(4.1之前的)密码哈希格式存储密码。此命令已在MySQL 5.7.5中删除。
  • password new_password
    设置新密码。这会将密码更改new_password为与mysqladmin一起用于连接服务器的帐户的密码 。因此,下次使用同一帐户调用 mysqladmin(或任何其他客户端程序)时,必须指定新密码。
  • ping
    检查服务器是否可用。如果服务器正在运行,则mysqladmin的返回状态为0,否则为1。即使出现诸如之类的错误,该值也为0 Access denied,因为这意味着服务器正在运行,但拒绝了连接,这与服务器未运行不同。
  • processlist
    显示活动服务器线程的列表。这就像该SHOW PROCESSLIST语句的输出。如果–verbose给出了 选项,则输出类似于的输出 SHOW FULL PROCESSLIST。
  • reload
    重新加载授权表。
  • refresh
    刷新所有表,然后关闭并打开日志文件。
  • shutdown
    停止服务器。
  • start-slave
    在副本服务器上开始复制。
  • status
    显示简短的服务器状态消息。
  • stop-slave
    在副本服务器上停止复制。
  • variables
    显示服务器系统变量及其值。
  • version
    显示来自服务器的版本信息。

二、使用示例

1、查看数据库状态

[root@test2 ~]# mysqladmin status -uroot -p
 Enter password:
 Uptime: 21129 Threads: 2 Questions: 9213 Slow queries: 0 Opens: 1145 Flush tables: 1 Open tables: 733 Queries per second avg: 0.436

2、修改账户密码

修改指定账户密码

[root@test2 ~]# mysqladmin -uroot -p password ‘Test!123’
 Enter password:
 mysqladmin: [Warning] Using a password on the command line interface can be insecure.
 Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

3、关闭数据库

[root@test2 ~]# mysqladmin shutdown -uroot -p
 Enter password:
 [root@test2 ~]# systemctl status mysqld
 ● mysqld.service - MySQL Server
 Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
 Active: inactive (dead) since Tue 2021-02-09 16:40:49 CST; 7s ago
 Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 108163 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
 Process: 108078 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 108166 (code=exited, status=0/SUCCESS)

 Feb 09 10:33:29 test2 systemd[1]: Starting MySQL Server…
 Feb 09 10:33:35 test2 systemd[1]: Started MySQL Server.

4、查看活跃线程

[root@test2 ~]# mysqladmin processlist -uroot -p
 Enter password:
 ±—±-----±----------±—±--------±-----±---------±-----------------+
 | Id | User | Host | db | Command | Time | State | Info |
 ±—±-----±----------±—±--------±-----±---------±-----------------+
 | 3 | root | localhost | | Query | 0 | starting | show processlist |
 ±—±-----±----------±—±--------±-----±---------±-----------------+

5、创建数据库

[root@test2 ~]# mysqladmin create test4 -uroot -p
 Enter password:
 [root@test2 ~]# mysql -uroot -p -e “show databases;”
 Enter password:
 ±-------------------+
 | Database |
 ±-------------------+
 | information_schema |
 | mysql |
 | performance_schema |
 | sys |
 | test1 |
 | test2 |
 | test3 |
 | test4 |
 ±-------------------+

6、删除数据库

[root@test2 ~]# mysqladmin drop test4 -uroot -p
 Enter password:
 Dropping the database is potentially a very bad thing to do.
 Any data stored in the database will be destroyed.

 Do you really want to drop the ‘test4’ database [y/N] y
 Database “test4” dropped

7、刷新授权表

[root@test2 ~]# mysqladmin reload -uroot -p
Enter password:

8、查询mysql服务器版本

[root@test1 ~]# mysqladmin version -uroot -p -h 192.168.0.125
 Enter password:
 mysqladmin Ver 8.42 Distrib 5.7.26, for Linux on x86_64
 Copyright © 2000, 2019, Oracle and/or its affiliates. All rights reserved.

 Oracle is a registered trademark of Oracle Corporation and/or its
 affiliates. Other names may be trademarks of their respective
 owners.

 Server version 5.7.26
 Protocol version 10
 Connection 192.168.0.125 via TCP/IP
 TCP port 3306
 Uptime: 8 min 5 sec

 Threads: 2 Questions: 21 Slow queries: 0 Opens: 127 Flush tables: 1 Open tables: 120 Queries per second avg: 0.043

9、检查远端mysql服务器是否运行

[root@test1 ~]# mysqladmin ping -uroot -p -h 192.168.0.125
Enter password:
mysqld is alive

三、使用语法及参数说明

1、语法样式

用法:mysqladmin [OPTIONS] command command…

2、参数说明

选项名称

参数说明

备注

已弃用

–bind-address

使用指定的网络接口连接到MySQL Server

–compress

压缩客户端和服务器之间发送的所有信息

–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公钥

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之前)格式向服务器发送密码


–server-public-key-path

包含RSA公钥的文件的路径名

5.7.23

–shared-memory-base-name

共享内存连接的共享内存名称(仅Windows)

–show-warnings

语句执行后显示警告

–shutdown-timeout

等待服务器关闭的最大秒数

–silent

静音模式

–sleep

重复执行命令,在这之间延迟几秒钟

–socket

Unix套接字文件或Windows命名管道使用

–ssl

启用连接加密

–ssl-ca

包含受信任的SSL证书颁发机构列表的文件

–ssl-capath

包含受信任的SSL证书颁发机构证书文件的目录

–ssl-cert

包含X.509证书的文件

–ssl-cipher

连接加密的允许密码

–ssl-crl

包含证书吊销列表的文件

–ssl-crlpath

包含证书吊销列表文件的目录

–ssl-key

包含X.509密钥的文件

–ssl-mode

与服务器连接的所需安全状态

5.7.11

–ssl-verify-server-cert

根据服务器证书的通用名身份验证主机名

–tls-version

允许的TLS协议进行加密连接

5.7.10

–user

连接服务器时使用的MySQL用户名

–verbose

详细模式

–version

显示版本信息并退出

–vertical

垂直打印查询输出行(每列值一行)

–wait

如果无法建立连接,请等待重试而不是中止