mysqladmin 是用于执行管理操作的客户端。可以使用它来检查服务器的配置和当前状态、创建和删除数据库等。
调用语法
mysqladmin [options] command [command-arg] [command [command-arg]] ...
支持的命令
所有命令可以缩短为唯一前缀。
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
操作数据库
- create db_name
- 创建数据库
- drop db_name
- 删除数据库和数据库中的所有表
操作账户
- password new_password
- 设置当前连接账户的新密码
-
密码中的特殊字符需要使用引号引起来
mysqladmin password "my new password"
- 在命令行指定密码的方式,可能被记录到系统中
-
可以将 password 命令放到命令行最后而不指定新密码,这种情况下,mysqladmin 会提示输入密码值
查看进程/状态
-
extended-status
- 显示服务器的状态变量
- ping
- 检查服务器是否可用
- 返回值
- 0:表示服务器正在运行
- 1:表示已宕机
- processlist
- 查看服务器的活动进程
- 等效于 SHOW PROCESSLIST
- 如果指定了 –verbose 选项,等效于 SHOW FULL PROCESSLIST
- status
- 显示简明的服务器状态信息
- 输出值
- Uptime
- 服务器已经运行的时间
- Threads
- 活动线程的数量
- Questions
- 服务器启动以来,来自客户端的查询数
- Slow queries
- 慢查询的数量
- Opens
- 服务器已打开的表的数量
- Flush tables
- 服务器执行 flush-*、refresh 和 reload 命令的数量
- Open tables
- 当前打开的表的数量
- Uptime
- variables
- 输出服务器系统变量
- version
- 输出服务器版本
刷新
- flush-hosts
- 刷新主机缓存中的所有信息
- flush-logs [log_type …]
- 刷新日志
- log_type
- 包括 binary, engine, error, general, relay, slow
- flush-privileges
- 重新加载授权表,刷新权限
- 与 reload 命令等效
- flush-status
- 清除状态变量
- flush-tables
- 刷新所有的表
- flush-threads
- 刷新所有的线程缓存
- refresh
- 刷新所有表,然后关闭并打开日志文件
操作服务器
debug已过时。
使服务器将调试信息写入错误日志需要 SUPER 权限
- kill id,id,…
- kill 服务器进程。可以指定多个进程 ID
- 如果要杀掉其他用户的进程,需要 CONNECTION_ADMIN 权限
- reload
- 重新加载授权表
- shutdown
- 关闭服务器
- 如果使用 socket 方式连接,这个命令会等待 PID 文件删除,以确保服务器正常停止
与复制相关的命令
- start-slave
- 在副本服务器上启动复制
- stop-slave
- 在副本服务器上停止复制
选项
大部分与 mysql 选项相同,略。
官方文档:https://dev.mysql.com/doc/refman/8.0/en/mysqladmin.html