mysql
数据库中的信息,如用户、权限、数据库等配置信息。MySQL 是一个流行的开源关系型数据库管理系统,它包含多个系统表用于存储和管理服务器运行所需的各种信息,以下是对MySQL系统表的详细介绍:
一、Information_schema数据库
1、SCHEMATA表:提供了当前MySQL实例中所有数据库的信息,是SHOW DATABASES
命令的结果来源。
2、TABLES表:提供了关于数据库中的表的信息(包括视图),详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息,是SHOW TABLES FROM schemaname
命令的结果来源。
3、COLUMNS表:提供了表中的列信息,详细表述了某张表的所有列以及每个列的信息,是SHOW COLUMNS FROM schemaname.tablename
命令的结果来源。
4、STATISTICS表:提供了关于表索引的信息,是SHOW INDEX FROM schemaname.tablename
命令的结果来源。
5、USER_PRIVILEGES表:给出了关于全程权限的信息,该信息源自mysql.user
授权表,是非标准表。
6、SCHEMA_PRIVILEGES表:给出了关于方案(数据库)权限的信息,该信息来自mysql.db
授权表,是非标准表。
7、TABLE_PRIVILEGES表:给出了关于表权限的信息,该信息源自mysql.tables_priv
授权表,是非标准表。
8、COLUMN_PRIVILEGES表:给出了关于列权限的信息,该信息源自mysql.columns_priv
授权表,是非标准表。
9、CHARACTER_SETS表:提供了MySQL实例可用字符集的信息,是SHOW CHARACTER SET
命令的结果来源。
10、COLLATIONS表:提供了关于各字符集的对照信息。
11、COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集,这些列等效于SHOW COLLATION
的前两个显示字段。
12、TABLE_CONSTRAINTS表:描述了存在约束的表以及表的约束类型。
13、KEY_COLUMN_USAGE表:描述了具有约束的键列。
14、ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息,ROUTINES表不包含自定义函数(UDF),名为mysql.proc name
的列指明了对应于INFORMATION_SCHEMA.ROUTINES
表的mysql.proc
表列。
15、VIEWS表:给出了关于数据库中的视图的信息,需要有show views
权限,否则无法查看视图信息。
16、TRIGGERS表:提供了关于触发程序的信息,必须有super权限才能查看该表。
二、mysql数据库
1、授权系统表:
user表:控制用户是否能够连接,如果可以连接,则会指出此用户的权限信息,适用于实例上的所有数据库。
db表:范围列决定哪些用户可以访问哪些数据库从哪个主机,权限列决定允许的操作,在数据库级别授予的权限适用于数据库和数据库中的所有对象,如表和存储程序。
tables_priv表和columns_priv表:控制的权限更细致,到了表级别和列级别。
procs_priv表:适用于存储例程(过程和函数),在常规级别授予的权限只适用于一个单一的过程或函数。
proxies_priv表:指出那个用户可以作为代理,或者是用户是否有权限给别的用户代理权限。
2、系统对象信息系统表:
event表:每一次系统启动都会重新加载,除非指定skipgranttables参数启动。
func表:存放关于用户定义的方法。
plugin表:存放有关服务器插件的相关信息。
proc表:存放存储过程和方法的系统表。
3、日志系统表:
general_log表:一般查询日志表。
slow_log表:慢查询日志表,这两张系统表可以将慢日志和日志按照表格的形式存储下来,但是相对来说带来对性能和存储空间的使用更大,一般生产环境我们都建议设置为外部文件。
4、服务器端辅助系统表:
help_category表、help_keyword表、help_relation表、help_topic表:这些表存储了MySQL帮助的基本信息,可以通过HELP +列来查看具体的帮助信息。
5、time zone系统表:
time_zone表、time_zone_leap_second表、time_zone_name表、time_zone_transition表、time_zone_transition_type表:这些表包含了时区相关的信息。
6、复制相关系统表:
gtid_executed表:存储了复制执行的GTID的信息。
ndb_binlog_index表、slave_master_info表、slave_relay_log_info表、slave_worker_info表:只有当MySQL作为slave的时候才会存储相关信息。
7、optimizer相关系统表:
innodb_index_stats表、innodb_table_stats表:显示的是索引的信息。
server_cost表、engine_cost表:优化器成本模型使用的表,包含查询期间发生操作的成本估算信息。
8、杂项系统表:
如果安装了MySQL Enterprise Audit,则包含audit_log_filter表和audit_log_user表,存储审计日志过滤器定义和用户帐户。
如果安装了MySQL Enterprise Firewall,则包含firewall_group_allowlist表、firewall_groups表、firewall_memebership表、firewall_users表和firewall_whitelist表,这些存储表防火墙的使用信息。
servers表:由FEDERATED存储引擎使用。
innodb_dynamic_metadata表:由InnoDB存储引擎用来存储快速变化的表元数据,例如自动递增计数器值和索引树损坏标志。
MySQL的系统表涵盖了从数据库元数据管理到用户权限控制、日志记录、服务器辅助功能等多个方面,为数据库管理员和开发者提供了丰富的信息和工具来管理和优化MySQL服务器的运行。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1237268.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复