mysqladmin
是一个命令行工具,用于执行简单的 MySQL 服务器管理任务,如检查服务器的状态、创建和删除数据库、重载权限等。
1 reload
重新加载授权表(grant tables)。当修改了MySQL的权限系统(例如,修改了用户权限或添加了新用户),需要重新加载授权表以使这些更改生效。使用FLUSH PRIVILEGES;
或mysqladmin reload
命令可以达到这个效果。
2 refresh
这个命令会关闭和重新打开MySQL服务器的日志文件,并刷新所有打开的表。它通常用于在不重启服务器的情况下刷新服务器状态。
3 shutdown
停止MySQL服务器。这个命令会安全地关闭MySQL服务器实例。在关闭之前,它会确保所有挂起的客户端连接都已关闭,并且所有的数据都已正确地写入磁盘。
4 start-replica (从MySQL 8.0.26开始)
在MySQL 8.0.26及以后的版本中,START REPLICA
命令用于在配置为副本的MySQL服务器上启动复制过程。这个命令替代了之前的START SLAVE
命令。
5 start-slave (在MySQL 8.0.26之前)
在MySQL 8.0.26之前的版本中,START SLAVE
命令用于在配置为副本的MySQL服务器上启动复制过程。这个命令告诉MySQL服务器开始从主服务器(master)复制数据。
6 status
这个命令用于获取MySQL服务器的当前状态信息,包括运行时间、连接数、查询次数等。它通常用于快速检查服务器的运行状况。
7 stop-replica (从MySQL 8.0.26开始)
在MySQL 8.0.26及以后的版本中,STOP REPLICA
命令用于在配置为副本的MySQL服务器上停止复制过程。这通常在你需要暂时停止复制或进行维护时使用。
8 stop-slave (在MySQL 8.0.26之前)
在MySQL 8.0.26之前的版本中,STOP SLAVE
命令用于在配置为副本的MySQL服务器上停止复制过程。与STOP REPLICA
命令的作用相同,但是是在较旧的MySQL版本中使用的命令。
9 variables
这个命令用于列出MySQL服务器当前设置的所有系统变量及其对应的值。这些变量控制MySQL服务器的各种行为,包括性能调优、安全设置等。
10 version
这个命令会返回MySQL服务器的版本号以及编译时的一些其他信息。这有助于你确定你正在使用的MySQL版本,并据此查找相关的文档或支持。
所有命令都可以缩写为任何唯一的前缀。这意味着你不需要输入完整的命令名,只要前缀足够唯一以区分其他命令即可。例如:
$> 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命令结果显示以下值:
1 Uptime
MySQL 服务器已经运行的秒数。长时间运行的服务器可能积累了更多的缓存和连接,也可能意味着更长的维护窗口(如重启)将导致更长的服务中断。
2 Threads
当前活动的线程(客户端)数量。高线程数可能意味着服务器正在处理大量并发请求,但也可能是由于连接未正确关闭导致的。
3 Questions
自从服务器启动以来,从客户端收到的查询(问题)数量。这个值可以帮助您了解服务器的活动级别,特别是与“Uptime”结合使用时。
4 Slow queries
超过 long_query_time
秒的查询数量。这个值可以帮助您识别性能瓶颈。如果这个数字很大,您可能需要查看慢查询日志(如果已启用)以找出需要优化的查询。
5 Opens
服务器已经打开的表的数量。每当一个表被打开(例如,执行查询时),这个计数器就会增加。如果表被缓存,则重新打开它不会增加这个值。如果“Opens”的值非常高,并且增长迅速,这可能意味着表缓存大小不足,导致频繁的表打开和关闭操作,这可能会影响性能。
6 Flush tables
服务器执行的 FLUSH TABLES
、REFRESH
和 RELOAD
命令的数量。这些命令通常用于清空表缓存、重新加载权限等。高值可能表示管理员正在执行这些操作,或者可能是由某些应用程序逻辑引起的。
7 Open tables
当前打开的表的数量。这个值表示了表缓存的当前使用情况。如果这个数字接近 table_open_cache
的值(这是 MySQL 可以同时打开的表的数量),您可能需要增加 table_open_cache
的大小,以便提高性能。
当您使用 mysqladmin shutdown
命令来关闭连接到一个通过 Unix 套接字文件进行通信的本地 MySQL 服务器时,mysqladmin
会等待直到服务器的进程 ID 文件(通常是一个名为 hostname.pid
的文件,其中 hostname
是服务器的主机名)被移除,以确保服务器已经正确停止。