文章目录
- 一、介绍
- 二、语法格式
- 三、命令参数
- (一)参数默认值
- (二)默认参数
 
- 四、支持的管理命令
- 五、参考示例
- (一)每隔两秒查看一次服务器的状态,总共重复 5 次
- (二)修改 root 密码
- (三)查看数据库服务器所有进行的进程
- (四)查看数据库服务器的状态
- (五)查看服务器扩展状态
- (六)清空日志
- (七)每秒查看一次执行的SQL语句
- (八)使用安全模式关闭数据库服务器
- (九)打印出可用变量
- (十)检查数据库服务是否可用
- (十一)查询服务器的版本
- (十二)创建数据库
- (十三)重新加载权限信息
- (十四)刷新所有表缓存,并关闭和打开 log
- (十五)删除数据库 test
 
一、介绍
mysqladmin 命令是 MySQL 服务器管理任务的客户端工具,它可以检查 MySQL 服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。
二、语法格式
mysqladmin [参数] [管理命令]
三、命令参数
| 选项 | 说明 | 
|---|---|
| -h , --host | MySQL服务器主机名 或 ip 地址 | 
| -u , --user | 连接 MySQL 服务器的用户名 | 
| -p , --password | 连接 MySQL 服务器的密码 | 
| -? , --help | 显示帮助信息 | 
| -c , --count number | number 是自动运行次数,设置自动运行次数,必须和 -i 一起使用 | 
| -i , --sleep number | 间隔多长时间重复执行 | 
| -P , --port | 指定数据库端口,优先顺序,my.cnf,$mysql_tcp_port,/etc/services,内置默认值(3306) | 
| -s , --silent | 无法连接到服务器时自动退出 | 
| -v, --verbose | 写更多的信息 | 
| -V, --version | 显示版本 | 
| –bind-address | 绑定的IP | 
| –debug-check | 当程序退出时打印一些调试信息 | 
| –debug-info | 当程序退出时打印调试信息和内存和CPU使用统计信息 | 
| -f, --force | 不要求确认删除数据库;使用多个命令,即使发生错误也继续。 | 
| -C, --compress | 在服务器/客户端协议中使用压缩 | 
| –character-sets-dir | 字符集的文件目录 | 
| –default-character-set | 设置默认字符集 | 
| -b, --no-beep | 关闭错误提示音 | 
| –protocol | 用于连接的协议(TCP、套接字、管道、内存) | 
| -r, --relative | 与-i一起使用时,显示当前值和以前值之间的差异。当前仅适用于扩展状态 | 
| –secure-auth | 如果客户端使用旧的(4.1.1之前的)协议,则拒绝连接到服务器 | 
| -S, --socket | 指定用于连接的套接字文件 | 
| –ssl-mode | 指定 SSL 连接模式 | 
| –ssl-ca | PEM格式的CA文件 | 
| –ssl-capath | CA目录 | 
| –ssl-cert | PEM格式的X509证书 | 
| –ssl-cipher | 要使用的SSL密码 | 
| –ssl-key | PEM格式的X509密钥 | 
| –ssl-crl | 证书吊销列表 | 
| –ssl-crlpath | 证书吊销列表路径 | 
| –tls-version | 要使用的TLS版本,允许值为:tlsv1、tlsv1.1 | 
| -u, --user | 登录用户(如果不是当前用户) | 
| -v, --verbose | 写更多信息 | 
| -V, --version | 输出版本信息并退出 | 
| -E, --vertical | 垂直打印输出 | 
| -w, --wait | 如果连接断开,等待并重试 | 
| –connect-timeout | 连接超时之前等待的秒数 | 
| –shutdown-timeout | 等待服务器关机的最大秒数 | 
| –plugin-dir=name | 客户端插件目录 | 
| –default-auth=name | 要使用的默认身份验证客户端插件 | 
| –enable-cleartext-plugin | 启用/禁用明文身份验证插件 | 
| –show-warnings | 执行完显示警告 | 
(一)参数默认值
| 参数名 | 默认值 | 
|---|---|
| bind-address | (No default value) | 
| count | 0 | 
| force | FALSE | 
| compress | FALSE | 
| character-sets-dir | (No default value) | 
| default-character-set | auto | 
| host | (No default value) | 
| no-beep | FALSE | 
| port | 3306 | 
| relative | FALSE | 
| secure-auth | TRUE | 
| socket | /data/3306/mysql.sock | 
| sleep | 0 | 
| ssl | TRUE | 
| ssl-verify-server-cert | FALSE | 
| ssl-ca | (No default value) | 
| ssl-capath | (No default value) | 
| ssl-cert | (No default value) | 
| ssl-cipher | (No default value) | 
| ssl-key | (No default value) | 
| ssl-crl | (No default value) | 
| ssl-crlpath | (No default value) | 
| tls-version | (No default value) | 
| user | (No default value) | 
| verbose | FALSE | 
| vertical | FALSE | 
| connect-timeout | 43200 | 
| shutdown-timeout | 3600 | 
| plugin-dir | (No default value) | 
| default-auth | (No default value) | 
| enable-cleartext-plugin | FALSE | 
| show-warnings | FALSE | 
(二)默认参数
按顺序从以下文件中:
/etc/my.cnf 
/etc/mysql/my.cnf/ 
/data/3306/my.cnf 
~/.my.cnf 
读取以下参数的值:
--print-defaults                     # 打印程序参数列表并退出.
--no-defaults                        # 不要从任何选项文件读取默认选项,登录文件除外
--defaults-file=#                    # 仅从给定文件中读取默认选项
--defaults-extra-file=#              # 读取全局文件后读取此文件
--defaults-group-suffix=#            # 同时读取带有concat(group,suffix)的组            
--login-path=#                       # 从登录文件读取此路径
四、支持的管理命令
create databasename:创建一个新数据库
drop databasename:删除一个数据库及其所有表
extended-status:给出服务器的一个扩展状态消息,从服务器发出扩展状态消息
flush-hosts:清空所有缓存的主机
flush-logs:清空所有日志
flush-tables:清空所有表
flush-privileges:再次装载授权表(同reload)
flush-status:清除状态变量
flush-threads:清空线程缓存
flush-privileges:重新加载授权表,刷新权限(与reload加载相同)
kill id,id,...:杀死mysql线程
password [new-password]:修改用户密码
ping:检查mysqld是否活着
processlist:显示服务器中活跃线程列表
reload:重新加载授权表
refresh:清空所有表并关闭和打开日志文件
shutdown:关掉服务器
status:给出服务器的简短状态消息,从服务器发出简短的状态消息
variables:打印出可用变量
version:得到服务器的版本信息
debug:指示服务器将调试信息写入日志
start-slave:启动主从复制
stop-slave:暂停主从复制
五、参考示例
(一)每隔两秒查看一次服务器的状态,总共重复 5 次
mysqladmin -uroot -p -i 2 -c 5 status # 相当于 show status
mysqladmin -uroot -pdadong123 -i 1 status # 每隔一秒查看一次状态
(二)修改 root 密码
语法格式:
mysqladmin -u用户名 -p旧密码 password 新密码 
给 root 加个密码 111111:
mysqladmin -uroot -p password '111111'
将 root 的密码改为 dadong:
mysqladmin -uroot -pdadong123 password 'dadong'
(三)查看数据库服务器所有进行的进程
获得当前数据库的连接线程信息:
[root@htlwk0001host ~]# mysqladmin -uroot -p processlist # 查看执行的SQL语句信息
[root@htlwk0001host ~]# mysqladmin -uroot -p -i 1 processlist # 每秒刷新一次
(四)查看数据库服务器的状态
mysqladmin -uroot -pdadong123 status 
(五)查看服务器扩展状态
mysqladmin -uroot -pdadong123 extended-status # 等同show global status
(六)清空日志
mysqladmin -uroot -pdadong123 flush-logs
(七)每秒查看一次执行的SQL语句
mysqladmin -uroot -pdadong123 processlist -i 1
(八)使用安全模式关闭数据库服务器
mysqladmin -uroot -pdadong shutdown 
(九)打印出可用变量
mysqladmin -uroot -pdadong variables # 相当于show variables
(十)检查数据库服务是否可用
[root@htlwk0001host ~]# mysqladmin -uroot -p ping
Enter password: 
mysqld is alive
(十一)查询服务器的版本
[root@htlwk0001host ~]# mysqladmin -uroot -p version
Enter password: 
mysqladmin  Ver 8.42 Distrib 5.7.31, for Linux on x86_64
Copyright (c) 2000, 2020, 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.31
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			1 hour 52 min 59 secThreads: 21  Questions: 784  Slow queries: 0  Opens: 105  Flush tables: 1  Open tables: 98  Queries per second avg: 0.115
(十二)创建数据库
[root@DB02 ~]# mysqladmin -uroot -pdadong123 create lili
Warning: Using a password on the command line interface can be insecure.
(十三)重新加载权限信息
mysqladmin -uroot -p reload
(十四)刷新所有表缓存,并关闭和打开 log
mysqladmin -uroot -p refresh
(十五)删除数据库 test
mysqladmin -uroot -p drop test