今天我将详细的为大家介绍 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