获取有关 MySQL 数据库、表、列和索引的快速信息
【摘要】 大多数开源应用程序使用 MySQL 数据库。要调试开源应用程序的问题,了解如何快速获取有关 MySQL 数据库的高级信息非常重要。在本文中,我通过 9 个示例来解释如何查看任何 MySQL 数据库上的数据库、表、列和索引信息。
大多数开源应用程序使用 MySQL 数据库。要调试开源应用程序的问题,了解如何快速获取有关 MySQL 数据库的高级信息非常重要。在本文中,我通过 9 个示例来解释如何查看任何 MySQL 数据库上的数据库、表、列和索引信息。
在以下所有 mysqlshow 示例中,您可以使用以下两种方法之一提供密码:
- 在mysqlshow命令中的-p后立即输入密码,-p后不要有空格。如果您在 shell 脚本中使用 mysqlshow,则此选项很有用。
- 只需向 mysqlshow 提供不带任何密码的选项 -p,它会提示输入密码。当您从命令行以交互方式使用 mysqlshow 时,建议使用此选项。
1. 显示可用的数据库
请将 tmppassword 替换为您的 MySQL 数据库 root 用户密码。
# mysqlshow -u root -ptmppassword
+--------------------+
| Databases |
+--------------------+
| information_schema |
| mysql |
| sugarcrm |
+--------------------+
2. 显示数据库中的所有表
下面的示例将显示位于 Sugarcrm 数据库下的所有表
# mysqlshow -u root -ptmppassword sugarcrm
Database: sugarcrm
+--------------------------------+
| Tables |
+--------------------------------+
| accounts |
| accounts_audit |
| accounts_bugs |
3. 显示表格以及数据库中的列数
# mysqlshow -v -u root -p sugarcrm
Enter password:
Database: sugarcrm
+--------------------------------+----------+
| Tables | Columns |
+--------------------------------+----------+
| accounts | 33 |
| accounts_audit | 10 |
| accounts_bugs | 5 |
4. 显示数据库中所有表的总列数和总行数
请注意以下命令中有两个 -v。
# mysqlshow -v -v -u root -p sugarcrm
Enter password:
Database: sugarcrm
+--------------------------------+----------+------------+
| Tables | Columns | Total Rows |
+--------------------------------+----------+------------+
| accounts | 33 | 252 |
| accounts_audit | 10 | 63 |
| accounts_bugs | 5 | 0 |
5. 显示表格的所有列
在以下示例中,它显示了 Sugarcrm 数据库中帐户表的所有可用列名称以及其他列信息。
# mysqlshow -u root -ptmppassword sugarcrm accounts
Database: sugarcrm Table: accounts
+-----------------------------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-----------------------------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id | char(36) | utf8_general_ci | NO | PRI | | | select,insert,update,references | |
| name | varchar(150) | utf8_general_ci | YES | | | | select,insert,update,references | |
| date_entered | datetime | | YES | | | | select,insert,update,references | |
6. 显示表中特定列的详细信息
在此示例中,它显示有关帐户表中 id 列的信息。
# mysqlshow -u root -ptmppassword sugarcrm accounts id
Database: sugarcrm Table: accounts Wildcard: id
+-------+----------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+----------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id | char(36) | utf8_general_ci | NO | PRI | | | select,insert,update,references | |
+-------+----------+-----------------+------+-----+---------+-------+---------------------------------+---------+
7. 显示一个表的所有元数据信息
# mysqlshow -i -u root -ptmppassword sugarcrm accounts
这将显示有关帐户表的以下信息。
|
|
|
8. 显示表的索引和列
请注意,索引列在显示底部的列信息之后。
# mysqlshow -k -u root -ptmppassword sugarcrm accounts
Database: sugarcrm Table: accounts
+-----------------------------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-----------------------------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+
| id | char(36) | utf8_general_ci | NO | PRI | | | select,insert,update,references | |
| name | varchar(150) | utf8_general_ci | YES | | | | select,insert,update,references | |
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
| accounts | 0 | PRIMARY | 1 | id | A | 252 | | | | BTREE | |
| accounts | 1 | idx_accnt_id_del | 1 | id | A | | | | | BTREE | |
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
9. 只显示索引而不显示表的列
这可以通过提供无效的列名来欺骗 mysqlshow 来完成。由于accounts 表中不存在invalid_col_name,因此以下命令将仅显示accounts 表的索引。
# mysqlshow -k -u root -ptmppassword sugarcrm accounts invalid_col_name
Database: sugarcrm Table: accounts Wildcard: invalid_col_name
+-------+------+-----------+------+-----+---------+-------+------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+------+-----------+------+-----+---------+-------+------------+---------+
+-------+------+-----------+------+-----+---------+-------+------------+---------+
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
| accounts | 0 | PRIMARY | 1 | id | A | 254 | | | | BTREE | |
| accounts | 1 | idx_accnt_id_del | 1 | id | A | | | | | BTREE | |
+----------+------------+------------------------+--------------+------------------+-----------+-------------+----------+--------+------+------------+---------+
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)