MySQL show語法
SHOW BINARY LOGS
SHOW BINARY LOGS 列出服務器上的二進制日誌文件。
SHOW BINLOG EVENTS 顯示二進制日誌中的事件。如果未指定 ,則顯示第一個二進制日誌。
mysql> SHOW BINARY LOGS;
| Log_name | File_size |
| ---------------- | --------- |
| mysql-bin.000036 | 524288088 |
| mysql-bin.000037 | 524288064 |
| mysql-bin.000038 | 524288230 |
如果沒有設置啓用二進制日誌文件,將會出現如下提示:
mysql> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW MASTER LOGS;
ERROR 1381 (HY000): You are not using binary logging
mysql> SHOW BINLOG EVENTS;
Empty set (0.01 sec)
SHOW CHARACTER SET
顯示所有可用的字符集
SHOW CHARACTER SET;
SHOW CHARACTER SET LIKE 'utf8%';
示例:
mysql> SHOW CHARACTER SET LIKE 'utf8%';
+---------+---------------+--------------------+--------+
| Charset | Description | Default collation | Maxlen |
+---------+---------------+--------------------+--------+
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci | 4 |
+---------+---------------+--------------------+--------+
2 rows in set (0.00 sec)
SHOW COLLATION
輸出包括所有可用的字符集
SHOW COLLATION;
SHOW COLLATION LIKE 'utf8%';
SHOW COLUMNS
顯示在一個給定表中的各列的信息,對於視圖,本語句也起作用。
SHOW COLUMNS FROM mydb.mytable;
SHOW COLUMNS FROM mytable FROM mydb;
SHOW CREATE DATABASE
顯示用於創建給定數據庫CREATE DATABASE語句。也可以使用SHOW CREATE SCHEMA。
SHOW CREATE DATABASE test;
SHOW CREATE DATABASE test\G;
SHOW CREATE TABLE
SHOW CREATE TABLE java;
SHOW CREATE TABLE java\G;
SHOW DATABASES
SHOW DATABASES
可以在 MySQL 服務器主機上列出數據庫。
也可以使用mysqlshow命令得到此清單。
只能看到擁有某些權限的數據庫,除非擁有全局SHOW DATABASES
權限。
SHOW DATABASES;
SHOW ENGINE
SHOW ENGINE: 顯示存儲引擎的日誌或狀態信息。目前支持以下語句:
SHOW ENGINE INNODB MUTEX
顯示 InnoDB mutex 和 rw-lock 統計信息
SHOW ENGINE engine_name {STATUS | MUTEX}
SHOW ENGINE INNODB STATUS;
示例:
mysql> SHOW ENGINE INNODB MUTEX;
+--------+-----------------------------+-----------+
| Type | Name | Status |
+--------+-----------------------------+-----------+
| InnoDB | rwlock: dict0dict.cc:1184 | waits=851 |
| InnoDB | rwlock: fil0fil.cc:1381 | waits=3 |
| InnoDB | rwlock: log0log.cc:838 | waits=226 |
| InnoDB | rwlock: btr0sea.cc:195 | waits=1 |
| InnoDB | rwlock: hash0hash.cc:353 | waits=1 |
| InnoDB | rwlock: hash0hash.cc:353 | waits=1 |
| InnoDB | sum rwlock: buf0buf.cc:1460 | waits=184 |
+--------+-----------------------------+-----------+
7 rows in set (0.12 sec)
SHOW ENGINES
SHOW ENGINES顯示存儲引擎的狀態信息。對於檢查一個存儲引擎是否被支持,或者對於查看默認引擎是什麼,本語句十分有用。
SHOW ENGINES;
SHOW ENGINES\G;
示例:
msyql> show engines;
| Engine| Support | Comment | Transactions | XA | Savepoints |
| -----| ------- | ----------------------- | --------- | ---- | ---- |
| InnoDB| DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| CSV| YES | CSV storage engine | NO | NO | NO |
| MyISAM| YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE| YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MEMORY| YES | Hash based,stored in memory,useful for temporary tables| NO | NO | NO |
| ARCHIVE| YES | Archive storage engine | NO | NO | NO |
| MRG_MYISAM| YES | Collection of identical MyISAM tables |NO|NO| NO|
| FEDERATED| NO | Federated MySQL storage engine|NULL|NULL| NULL |
SHOW ERRORS
該語句只顯示錯誤,不同時顯示錯誤、警告和注意。
SHOW COUNT(*) ERRORS;
SHOW ERRORS;
SHOW GRANTS
SHOW GRANTS;
SHOW GRANTS FOR user;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();
SHOW INDEX
SHOW INDEX會返回表索引信息。
SHOW INDEX FROM mydb.mytable;
SHOW INDEX FROM mytable FROM mydb;
SHOW OPEN TABLES
列舉在表緩存中當前被打開的非TEMPORARY表。
SHOW OPEN TABLES;
SHOW PRIVILEGES
顯示MySQL服務器支持的系統權限清單。確切的輸出根據服務器的版本而定
SHOW PRIVILEGES;
**SHOW PROFILES **
該SHOW PROFILES
語句與SHOW PROFILE
顯示的分析信息一起顯示在當前會話過程中執行的語句的資源使用情況。
SHOW PROCESSLIST
SHOW PROCESSLIST 用來顯示哪些線程正在運行。
也可以使用mysqladmin processlist
語句得到此信息。
如果有SUPER權限,可以看到所有線程。否則,只能看到自己的線程
mysql> SHOW PROCESSLIST;
+---+--------+---------------+-----+------+----+-----+----------+
| Id | User | Host | db | Command | Time | State | Info |
+---+--------+---------------+------+------+---+------+----------+
|120|homestead|192.168.10.1:57001| testdb| Sleep|10 | | NULL |
|124|homestead|192.168.10.1:60613| NULL | Sleep| 59 | | NULL |
|138|homestead|192.168.10.1:56737| testdb| Sleep| 1010 | | NULL |
|139|homestead|localhost| NULL | Query| 0| starting | SHOW PROCESSLIST |
+---+--------+---------------+-----+------+----+-----+----------+
SHOW STATUS
提供服務器狀態信息。此信息也可以使用mysqladmin extended-status
命令獲得。
SHOW STATUS;
SHOW TABLE STATUS
SHOW TABLE STATUS的性質與SHOW TABLE類似,不過,可以提供每個表的大量信息。
也可以使用mysqlshow --status db_name
命令得到此清單。
本語句也顯示視圖信息。
SHOW TABLE STATUS;
SHOW TABLE STATUS FROM test;
SHOW TABLES
SHOW TABLES列舉了給定數據庫中的非TEMPORARY表。
也可以使用 mysqlshow db_name
命令得到此清單。
SHOW TABLES;
mysql> SHOW TABLES;
ERROR 1046 (3D000): No database selected
mysql> use testdb;
Database changed
mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| en_names |
| my_todos |
| my_users |
+------------------+
3 rows in set (0.00 sec)
SHOW TRIGGERS
SHOW TRIGGERS列出了目前被MySQL服務器定義的觸發程序(觸發器)。
SHOW TRIGGERS;
觸發器(trigger)是存儲在數據庫目錄中的一組SQL語句。每當與表相關聯的事件發生時,即會執行或觸發SQL觸發器。例如,當對一個表進行操作插入( insert)、刪除(delete)、更新( update)時就會激活它執行。
觸發器創建語法四要素:
- 監視地點 (table)
- 監視事件 (insert/update/delete)
- 觸發時間 (after/before)
- 觸發事件 (insert/update/delete)
SHOW VARIABLES
SHOW VARIABLES;
SHOW GLOBAL VARIABLES;
SHOW SESSION VARIABLES;
SHOW VARIABLES LIKE 'have%';
SHOW WARNINGS
顯示由上一個生成消息的語句導致的錯誤、警告和注意消息。
如果上一個使用表的語句未生成消息,則什麼也不顯示。
SHOW ERRORS是其相關語句,只顯示錯誤。
SHOW COUNT(*) WARNINGS;
SHOW WARNINGS;