一、命令简介
mysqladmin 是 MySQL 数据库服务器的官方命令行管理客户端工具。它允许数据库管理员在不登录 MySQL 交互式命令行 (mysql) 的情况下,直接执行一系列服务器管理、状态检查和维护操作。其主要用途包括检查服务器状态、创建 / 删除数据库、管理用户密码、刷新缓存以及执行服务器关闭等。
二、语法格式
plaintext
mysqladmin [选项] 管理命令 [命令参数]格式说明:
- [选项]:用于指定连接服务器所需的参数,如主机、用户名、密码等。
- 管理命令:指定要执行的具体操作,如 status, shutdown, create 等。
- [命令参数]:某些管理命令需要额外的参数,例如 create 和 drop 需要指定数据库名。
三、常用选项及说明
表格
| 选项 | 说明 |
|---|---|
| -h, --host=<主机名> | 指定要连接的 MySQL 服务器主机名或 IP 地址。默认为 localhost。 |
| -P, --port=<端口号> | 指定 MySQL 服务器的端口号。默认为 3306。 |
| -u, --user=<用户名> | 指定连接 MySQL 服务器时使用的用户名。 |
| -p, --password [=< 密码>] | 提示输入连接密码。注意:直接在命令后使用 -p 密码 存在安全风险(密码可能被历史记录或进程列表捕获)。建议使用 -p 然后交互式输入,或使用配置文件。 |
| --socket=<套接字文件路径> | 在本地连接时,指定要使用的 Unix 套接字文件路径。 |
| --protocol=<协议> | 指定使用的连接协议,如 tcp, socket, pipe, memory。 |
| -v, --verbose | 输出更详细的信息。 |
| -V, --version | 显示 mysqladmin 的版本信息并退出。 |
| -?, --help | 显示帮助信息并退出。 |
四、示例用法
4.1 检查 MySQL 服务器是否运行
plaintext
mysqladmin -u root -p ping如果服务器正常运行,将返回 mysqld is alive。
4.2 查看服务器状态摘要
plaintext
mysqladmin -u root -p status输出类似:Uptime: 1234 Threads: 2 Questions: 10 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 0.008
4.3 查看服务器详细状态变量
plaintext
mysqladmin -u root -p extended-status显示所有服务器状态变量及其当前值。
4.4 创建一个新数据库
plaintext
mysqladmin -u root -p create mynewdatabase4.5 删除一个数据库
plaintext
mysqladmin -u root -p drop myolddatabase执行此命令后,会提示确认是否删除。
4.6 修改用户密码(旧语法)
plaintext
mysqladmin -u root -p password "new_strong_password"注意:此语法在 MySQL 5.7.6 之后已废弃。更推荐使用 SET PASSWORD 或 ALTER USER SQL 语句。
4.7 刷新日志、主机缓存等
plaintext
mysqladmin -u root -p flush-logs # 刷新日志文件 mysqladmin -u root -p flush-hosts # 清空主机缓存 mysqladmin -u root -p flush-tables # 刷新所有表 mysqladmin -u root -p flush-privileges # 重载授权表(等同于`reload`)4.8 查看当前活跃的进程 / 线程
plaintext
mysqladmin -u root -p processlist显示类似于 SHOW PROCESSLIST; SQL 命令的结果。
4.9 安全关闭 MySQL 服务器
plaintext
mysqladmin -u root -p shutdown五、注意事项
- 权限要求:执行 mysqladmin 命令的用户必须拥有相应的 MySQL 权限。例如,shutdown 需要 SHUTDOWN 权限,create/drop database 需要 CREATE 或 DROP 权限。
- 密码安全:避免在命令行中直接使用 -p <密码> 的形式,以防止密码泄露。建议使用 -p 后交互输入,或使用~/.my.cnf 配置文件来安全地存储凭据。
- 命令废弃:password 命令(用于修改密码)在较新版本的 MySQL 中已被标记为废弃。修改密码应优先使用 MySQL 命令行客户端执行 ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword’;。
- 连接失败:如果遇到连接失败,请检查:
- MySQL 服务是否正在运行。
- -h, -P, -u 参数是否正确。
- 用户是否有从指定主机连接的权限。
- 防火墙是否阻止了连接端口。
- 与 mysql 客户端的区别:mysqladmin 专门用于管理操作,而 mysql 是一个通用的 SQL 查询和交互客户端。对于复杂的数据库查询或数据操作,应使用 mysql 客户端。