死磕数据库系列(二十七):MySQL 常用管理命令介绍
今天我将详细的为大家介绍 MySQL 日常管理命令的相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!
show processlist
processlist
命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态帮助识别出有问题的查询语句等。
如果是root帐号,能看到所有用户的当前连接。如果是其他普通帐号,则只能看到自己占用的连接。showprocesslist只能列出当前100条。如果想全部列出,可以使用SHOW FULL PROCESSLIST
命令
mysql> show processlist;
+----+------+--------------------+------+---------+-------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+--------------------+------+---------+-------+-------+------------------+
| 1 | root | localhost | NULL | Sleep | 12 | | NULL |
| 2 | root | 192.168.100.1:7437 | test | Sleep | 8035 | | NULL |
| 3 | root | 192.168.100.1:7438 | NULL | Sleep | 24348 | | NULL |
| 5 | root | 192.168.100.1:7443 | NULL | Sleep | 24317 | | NULL |
| 7 | root | 192.168.100.1:7450 | test | Sleep | 24272 | | NULL |
| 9 | root | 192.168.100.1:5152 | test | Query | | init | show processlist |
+----+------+--------------------+------+---------+-------+-------+------------------+
6 rows in set
mysql> show full processlist;
+----+------+--------------------+------+---------+-------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+--------------------+------+---------+-------+-------+-----------------------+
| 1 | root | localhost | NULL | Sleep | 19 | | NULL |
| 2 | root | 192.168.100.1:7437 | test | Sleep | 8042 | | NULL |
| 3 | root | 192.168.100.1:7438 | NULL | Sleep | 24355 | | NULL |
| 5 | root | 192.168.100.1:7443 | NULL | Sleep | 24324 | | NULL |
| 7 | root | 192.168.100.1:7450 | test | Sleep | 24279 | | NULL |
| 9 | root | 192.168.100.1:5152 | test | Query | | init | show full processlist |
+----+------+--------------------+------+---------+-------+-------+-----------------------+
6 rows in set
各个列的含义
①.id列,用户登录mysql时,系统分配的"connection_id",可以使用函数connection_id()查看 ②.user列,显示当前用户。如果不是root,这个命令就只显示用户权限范围的sql语句 ③.host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户 ④.db列,显示这个进程目前连接的是哪个数据库 ⑤.command列,显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)等 ⑥.time列,显示这个状态持续的时间,单位是秒 ⑦.state列,显示使用当前连接的sql语句的状态,很重要的列。state描述的是语句执行中的某一个状态。一个sql语句,以查询为例,可能需要经过copying to tmp table、sorting result、sending data等状态才可以完成 ⑧.info列,显示这个sql语句,是判断问题语句的一个重要依据
在主从复制环境中,show processlist或show full processlist对于判断状态很有帮助,例如下面的state列:更多关于MySQL学习的文章,请参阅:死磕数据库系列之 MySQL ,本系列持续更新中。
show status
使用show status;
可以比较全面地查看到 mysql状态
mysql> show status;
参数解释
Aborted_clients #由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。
Aborted_connects #尝试已经失败的MySQL服务器的连接的次数。
Connections #试图连接MySQL服务器的次数。
Created_tmp_tables #当执行语句时,已经被创造了的隐含临时表的数量。
Delayed_insert_threads #正在使用的延迟插入处理器线程的数量。
Delayed_writes #用INSERT DELAYED写入的行数。
Delayed_errors #用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。
Flush_commands #执行FLUSH命令的次数。
Handler_delete #请求从一张表中删除行的次数。
Handler_read_first #请求读入表中行的次数。
Handler_read_key #请求数字基于键读行。
Handler_read_next #请求读入基于一个键的一行的次数。
Handler_read_rnd #请求读入基于一个固定位置的一行的次数。
Handler_update #请求更新表中一行的次数。
Handler_write #请求向表中插入一行的次数。
Key_blocks_used #用于关键字缓存的块的数量。
Key_read_requests #请求从缓存读入一个键值的次数。
Key_reads #从磁盘物理读入一个键值的次数。
Key_write_requests #请求将一个关键字块写入缓存次数。
Key_writes #将一个键值块物理写入磁盘的次数。
Max_used_connections #同时使用的连接的大数目。
Not_flushed_key_blocks #在键缓存中已经改变但是还没被清空到磁盘上的键块。
Not_flushed_delayed_rows #在INSERT DELAY队列中等待写入的行的数量。
Open_tables #打开表的数量。
Open_files #打开文件的数量。
Open_streams #打开流的数量(主要用于日志记载)
Opened_tables #已经打开的表的数量。
Questions #发往服务器的查询的数量。
Slow_queries #要花超过long_query_time时间的查询数量。
Threads_connected #当前打开的连接的数量。
Threads_running #不在睡眠的线程数量。
Uptime #服务器工作了多少秒。
更多关于MySQL学习的文章,请参阅:死磕数据库系列之 MySQL ,本系列持续更新中。
mysqladmin
mysqladmin 工具的使用格式
mysqladmin [option] command [command option] command ......
参数选项
-c number #自动运行次数统计,必须和 -i 一起使用
-i number #间隔多长时间重复执行
实例
0)每个两秒查看一次服务器的状态,总共重复5次。
[root@test-kevin ~]# mysqladmin -uroot -p -i 2 -c 5 status
1)查看服务器的状况:status
[root@test-kevin ~]# mysqladmin -uroot -p status
2)修改root 密码:
[root@test-kevin ~]# mysqladmin -u root -p原密码 password 'newpassword'
3)检查mysqlserver是否可用:
[root@test-kevin ~]# mysqladmin -uroot -p ping
4)查询服务器的版本
[root@test-kevin ~]# mysqladmin -uroot -p version
5)查看服务器状态的当前值:
[root@test-kevin ~]# mysqladmin -uroot -p extended-status
6)查询服务器系统变量值:
[root@test-kevin ~]# mysqladmin -uroot -p variables
7)显示服务器所有运行的进程:
[root@test-kevin ~]# mysqladmin -uroot -p processlist
[root@test-kevin ~]# mysqladmin -uroot -p-i 1 processlist //每秒刷新一次
8)创建数据库
[root@test-kevin ~]# mysqladmin -uroot -p create daba-test
9)显示服务器上的所有数据库
[root@test-kevin ~]# mysqlshow -uroot -p
10)显示数据库daba-test下有些什么表:
[root@test-kevin ~]# mysqlshow -uroot -p daba-test
11)统计daba-test 下数据库表列的汇总
[root@test-kevin ~]# mysqlshow -uroot -p daba-test -v
12)统计daba-test 下数据库表的列数和行数
[root@test-kevin ~]# mysqlshow -uroot -p daba-test -v -v
13)删除数据库 daba-test
[root@test-kevin ~]# mysqladmin -uroot -p drop daba-test
14)重载权限信息
[root@test-kevin ~]# mysqladmin -uroot -p reload
15)刷新所有表缓存,并关闭和打开log
[root@test-kevin ~]# mysqladmin -uroot -p refresh
16)使用安全模式关闭数据库
[root@test-kevin ~]# mysqladmin -uroot -p shutdown
17)刷新命令mysqladmin flush commands
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-hosts
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-logs
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-privileges
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-status
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-tables
[root@test-kevin ~]# mysqladmin -u root -ptmppassword flush-threads
18)mysqladmin 执行kill 进程:
[root@test-kevin ~]# mysqladmin -uroot -p processlist
[root@test-kevin ~]# mysqladmin -uroot -p kill idnum
19)停止和启动MySQL replication on a slave server
[root@test-kevin ~]# mysqladmin -u root -p stop-slave
[root@test-kevin ~]# mysqladmin -u root -p start-slave
20)同时执行多个命令
[root@test-kevin ~]# mysqladmin -u root -p process status version
出处: https://www.cnblogs.com/f-ck-need-u/p/7742153.html https://www.cnblogs.com/kevingrace/p/6274390.html https://www.cnblogs.com/kevingrace/p/6151066.html
相关文章