常用命令之mysql命令之show命令

一、mysql show命令简介

  mysql数据库中show命令是一个非常实用的命令,SHOW命令用于显示MySQL数据库中的信息。它可以用于显示数据库、表、列、索引和用户等各种对象的信息。我们常用的有show databases,show tables,show full processlist等,实际上可以使用的还有很多,实际上包括三十多个子命令,加上可选参数可以查看的数据库信息就更多了。此博文以示例的方式介绍mysql show命令,博文的实验环境如下:

  • 操作系统:centos7.6
  • 数据库版本:mysql5.7.26

二、最常用show命令使用示例

1、查看数据库列表

  我们用得最多的就是show databases了,可以查看数据库列表,如果是root用户可以看到所有的数据库,如果是普通用户只可以看到自己有权限的库和information_schema库。

mysql> show databases;
在这里插入图片描述

2、查看数据库连接进程

  show processlist可以查看数据库连接进程,full是可选项,区别是show显示前100个线程,show full显示所有的。这个命令root用户和普通用户都可以执行,区别就是root用户可以看到所有用户的连接信息,普通用户只能看到该用户的。连接信息中有进程ID、用户名、连接源地址和端口号、连接的数据库、命令状态、连接时间、执行状态、执行的命令明细。show processlist常用于出现锁的情况下查询进程ID,然后手动kill ID后解锁。

mysql> show processlist;
mysql> show full processlist;
在这里插入图片描述

3、查看表列表

  show tables用于查看库下的表列表,需要先进入某库后才可以执行。当然我们也可以使用show tables from db_name,查看某库的数据表,前提是有权限查看。

mysql> use testdb;
mysql> show tables;
mysql> show tables from mysql;
在这里插入图片描述

4、查看表结构

  使用SHOW CREATE TABLE tbl_name可以查看某表的表结构,常用于需要确认表信息,在修改表结构前常用到。

mysql> show create table tb_0001;
在这里插入图片描述

5、查看变量信息

  显示MySQL服务器的配置变量的值,这个命令常在排查问题的时候用到,用于查看mysql实例的参数配置,经常结合like一起使用,用于过滤指定参数。可以使用show global variables或者show session variables查看全局或者会话参数,默认是查看会话参数。

mysql> show variables like ‘%time%’;
在这里插入图片描述

6、查看数据表的索引信息

  如果我们需要查看某表都创建了哪些索引可以使用show index from table_name的方式查看,默认有主键索引,如果还创建了其他索引通过此方式都可以看到。

mysql> show index from tb_0001;在这里插入图片描述

7、查看某用户的权限

  使用show grants for user@host 可以查看用户的授权,如果用户的host是任意源可以省略;也可以直接输入show grants查看当前用户的权限。

mysql> show grants for bak@‘192.168.0.%’;
mysql> show grants;

8、获取show命令帮助

mysql> help show;

三、需要特权执行的show命令使用示例

  如下show命令执行都需要特权,非普通用户可以执行。

1、查看主从状态

  如果搭建了mysql的主从模式,我们需要检查主从状态就可以使用此命令。如果配置了master或者slave角色就可以看到主从状态信息,否则为空。

mysql> show master status;
mysql> show slave status;
在这里插入图片描述

2、查看从节点主机信息

mysql> show slave hosts;
±----------±-----±-----±----------±-------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
±----------±-----±-----±----------±-------------------------------------+
| 2 | | 3306 | 3306 | 4ef97f7e-cfe9-11ea-8214-3448edf3158c |
±----------±-----±-----±----------±-------------------------------------+
1 row in set (0.00 sec)

3、查看二进制日志位置

mysql> show master logs;
mysql> show binary logs;

4、查看binlog日志事件

mysql> SHOW BINLOG EVENTS;
在这里插入图片描述

四、其他show命令使用示例

1、查看可用字符集

mysql> SHOW CHARACTER SET;
mysql> SHOW CHARACTER SET like ‘%gbk%’;

2、查看显示可用的字符校对规则

mysql> SHOW COLLATION;

3、查看某库某表的所有列

mysql> SHOW full COLUMNS FROM tb_0001 from testdb;
在这里插入图片描述

4、查看数据库创建信息

  使用show create 可以查看创建数据库、事件、函数、存储过程、触发器、视图等的信息,需要对应的名称。

mysql> show create database testdb;
SHOW CREATE DATABASE db_name
SHOW CREATE EVENT event_name
SHOW CREATE FUNCTION func_name
SHOW CREATE PROCEDURE proc_name
SHOW CREATE TRIGGER trigger_name
SHOW CREATE VIEW view_name

5、查看最近事件

mysql> show events;
Empty set (0.00 sec)

6、查看最近告警

mysql> show warnings;
Empty set (0.00 sec)

7、查看最近错误

mysql> show errors;
Empty set (0.00 sec)

8、查看引擎状态

  查看innodb引擎状态,

mysql> SHOW ENGINE innodb status;

9、查看已安装的插件

mysql>SHOW PLUGINS

10、查看数据库表状态

  查看数据库表状态,这个在进行单个表备份还原的时候还是非常有用的,通过查看表的最后更新时间,我们可以选择对应日期的备份文件进行还原,在需要对表进行业务操作的时候,也可以通过分析协助判断什么时间进行数据库操作比较合适。

mysql> show table status from testdb;
在这里插入图片描述

11、查看所有打开的表

mysql> show open tables;

12、查看数据库触发器

  我们可以通过show triggers查看所有触发器,也可以show triggers from db_name查看指定数据库的触发器。

mysql> show triggers from testdb;

13、查看函数或者存储过程状态

mysql> SHOW FUNCTION STATUS like ‘%version_patch%’\G
mysql> SHOW PROCEDURE STATUS like ‘table_exists’\G

14、使用profile语句分析sql性能

  我们可以使用profile语句分析需要执行的sql执行的性能情况,可以看到sql执行的各阶段的资源消耗,SHOW PROFILE语句支持选择ALL、CPU、BLOCK IO、CONTEXT SWITCH和PAGE FAULTS等来查看具体的明细信息。不过此功能即将被淘汰,在新版本中通过Performance Schema库来分析资源消耗和使用情况。

mysql> set profiling=1;
mysql> select count(*) from testdb.tb_0001;
mysql> show profiles;
mysql> show profile for query 1;
mysql> show profile cpu for query 1;
在这里插入图片描述
在这里插入图片描述

五、show status常用参数说明

  使用SHOW STATUS语句能够获取MySQL服务器的一些状态信息,这些状态信息主要是MySQL数据库的性能参数。SHOW STATUS语句的语法格式如下:

SHOW [SESSION | GLOBAL] STATUS LIKE ‘status_name’;

  其中,SESSION表示获取当前会话级别的性能参数,GLOBAL表示获取全局级别的性能参数,并且SESSION和GLOBAL可以省略,如果省略不写,默认为SESSION。status_name表示查询的参数值。熟练掌握这些参数的使用,能够更好地了解SQL语句的执行频率。常用参数说明如下:

参数值 参数说明
Connections 连接MySQL服务器的次数
Uptime MySQL 服务器启动后连续工作的时间
Slow_queries 慢查询的次数
Com insert 插入数据的次数,批量插入多条数据时,只累加1
Com delete 删除数据的次数,每次累加1
Com update 修改数据的次数,每次累加1
Com select 查询数据的次数,一次查询操作累加1
Innodb rows read 查询数据时返回的数据行数
Innodb rows inserted 插入数据时返回的记录数
Innodb rows updated 更新数据时返回的记录数
Innodb rows deleted 删除数据时返回的记录数

猜你喜欢

转载自blog.csdn.net/carefree2005/article/details/131898498