Home  >  Article  >  Database  >  mysql has no mysql table

mysql has no mysql table

WBOY
WBOYOriginal
2023-05-23 11:09:07585browse

MySQL is a relational database management system and one of the most popular open source databases in the world. However, in MySQL, the table named "mysql" does not actually exist. This article will introduce the system database and system tables in MySQL and their functions.

1. System database

The system database in MySQL includes:

  1. mysql: stores information about the MySQL server itself, such as operators, permissions and system variables .
  2. information_schema: Provides metadata information for all current databases and tables. For example, you can find information about each table's columns and indexes in information_schema.
  3. Performance_schema: Provides performance measurement tools for MySQL server. It includes performance statistics about various aspects of the MySQL server, such as queries being run, tables and indexes used, etc.
  4. sys: Convert views of MySQL metadata into easy-to-use queries. Sys is designed to provide DBAs and developers with simple, convenient access to MySQL metadata information.

The above system databases are visible in MySQL, and you can query them through the command SHOW DATABASES.

2. System tables

In the MySQL system database, there are many system tables. The following are some of the system tables and their functions:

  1. User and permission-related system tables

mysql.user: stores MySQL user accounts and security access levels information. It includes the user's name, host address, password, etc. It is an important table in terms of authorization management.

mysql.db: Includes the user’s database permissions. It lists the users allowed to access the database and tables. (Including specific host addresses)

mysql.host: It stores the host name and its corresponding rule for returning the client IP address

mysql.roles and mysql.role_edges: is mysql8.0 Introduced in

  1. System tables related to databases and tables used to integrate roles

information_schema.tables: stores detailed information of all tables. Include database name, table name, type of table (such as table, view, or system table), table engine, table creation time, and more.

information_schema.columns: Lists detailed information about each column of the table, such as column name, data type, whether NULL is allowed, the default value of the column, etc.

information_schema.indexes: Display index information. Including index name, information about whether the index is unique, included columns, index type, etc.

mysql.proc: Contains information about stored procedures and functions, such as procedure name, parameters, code, etc.

mysql.event: Contains scheduled events (i.e. regular jobs), such as event name, start time, cycle time, etc.

Views, functions, and more in sys schema: Transform views of MySQL metadata into easy-to-use queries. For example, there is a "schema_table_statistics" view in the sys library, which includes statistics for various tables and indexes.

From the above system tables, we clearly understand that MySQL system information mainly includes user and permissions, database and table related information.

In summary, although there is no table named "mysql" in MySQL, there are many system databases and tables in MySQL that store information related to the MySQL server and database metadata. Understanding these system databases and tables can help you understand MySQL better.

The above is the detailed content of mysql has no mysql table. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn