MySQL之自带四库之mysql库

一、概述

Mysql5.7版本自带4个数据库,information_schema、mysql、performance_schema、sys。其中mysql库是MySQL的核心数据库,类似于sql server中的master表,它包含存储MySQL服务器运行时所需信息的表,mysql库共计31张表。主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。

二、mysql库表分类

  • 授权信息系统表
  • 对象信息系统表
  • 日志系统表
  • 服务器端帮助系统表
  • 时区系统表
  • 复制系统表
  • 优化器系统表
  • 杂项系统表

三、分类介绍

mysql库所有的表格引擎如果没有特殊说明均为MyISAM,不能修改为InnoDB,否则无法启动。

1、授权信息系统表

  • user:用户帐户,全局特权和其他非特权列。
  • db:数据库级特权。
  • tables_priv:表级特权。
  • columns_priv:列级特权。
  • procs_priv:存储过程和函数特权。
  • proxies_priv:代理用户权限。

2、对象信息系统表

  • event:使用.NET安装的事件计划程序事件的注册表CREATE EVENT。如果使用该–skip-grant-tables选项启动服务器 ,则事件调度程序将被禁用,并且表中注册的事件不会运行。
  • func:使用来安装用户定义功能(UDF)的注册表 CREATE FUNCTION。在正常启动过程中,服务器将加载在此表中注册的UDF。如果使用该–skip-grant-tables选项启动服务器 ,则表中注册的UDF不会被加载并且不可用。
  • plugin:使用安装的服务器端插件的注册表INSTALL PLUGIN。在正常启动过程中,服务器将加载在此表中注册的插件。如果使用该–skip-grant-tables选项启动服务器 ,则表中注册的插件将不会加载且不可用。该plugin表在MySQL 5.7.6之前使用MyISAM存储引擎,之后使用InnoDB。
  • proc:有关存储过程和功能的信息。

3、日志系统表

  • general_log:一般查询日志表。
  • slow_log:慢查询日志表。

4、服务器端帮助系统表

这些系统表包含服务器端帮助信息:

  • help_category:有关帮助类别的信息。
  • help_keyword:与帮助主题相关的关键字。
  • help_relation:帮助关键字和主题之间的映射。
  • help_topic:帮助主题内容。
    在MySQL 5.7.5之前使用MyISAM存储引擎,之后使用InnoDB。

5、时区系统表

这些系统表包含时区信息:

  • time_zone:时区ID以及它们是否使用leap秒。
  • time_zone_leap_second:发生leap秒时。
  • time_zone_name:时区ID和名称之间的映射。
  • time_zone_transition, time_zone_transition_type:时区说明。
    在MySQL 5.7.5之前使用MyISAM存储引擎,之后使用InnoDB。

6、 复制系统表

  • gtid_executed:用于存储GTID值的表。该gtid_executed表使用 InnoDB存储引擎。
  • ndb_binlog_index:NDB群集复制的二进制日志信息。在NDB 7.5.2之前,此表使用了 MyISAM存储引擎。在NDB 7.5.2和更高版本中,它使用 InnoDB。
  • slave_master_info, slave_relay_log_info, slave_worker_info:用来存放复制的信息副本服务器上。所有这三个表都使用InnoDB 存储引擎。

7、优化器系统表

  • innodb_index_stats, innodb_table_stats:用于 InnoDB持久性优化器统计信息。
  • server_cost, engine_cost:优化程序成本模型使用的表包含有关查询执行期间发生的操作的成本估算信息。 server_cost包含用于一般服务器操作的优化程序成本估算。 engine_cost包含特定于特定存储引擎的操作的估计。
    这些表使用InnoDB存储引擎。

8、杂项系统表

  • audit_log_filter, audit_log_user如果安装了MySQL企业审计,这些表提供的审计日志筛选器定义和用户帐户永久存储。
  • firewall_users, firewall_whitelist如果安装了MySQL企业级防火墙,这些表格提供了防火墙使用的信息永久存储。
  • servers:由 FEDERATED存储引擎使用。在MySQL 5.7.6之前使用MyISAM存储引擎,之后使用InnoDB。

四、常用表user介绍

1、表结构

CREATE TABLE user (
Host char(60) COLLATE utf8_bin NOT NULL DEFAULT ‘’,
User char(32) COLLATE utf8_bin NOT NULL DEFAULT ‘’,
Select_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Insert_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Update_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Delete_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Drop_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Reload_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Shutdown_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Process_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
File_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Grant_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
References_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Index_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Alter_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Show_db_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Super_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_tmp_table_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Lock_tables_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Execute_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Repl_slave_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Repl_client_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_view_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Show_view_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_routine_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Alter_routine_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_user_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Event_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Trigger_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
Create_tablespace_priv enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
ssl_type enum(’’,‘ANY’,‘X509’,‘SPECIFIED’) CHARACTER SET utf8 NOT NULL DEFAULT ‘’,
ssl_cipher blob NOT NULL,
x509_issuer blob NOT NULL,
x509_subject blob NOT NULL,
max_questions int(11) unsigned NOT NULL DEFAULT ‘0’,
max_updates int(11) unsigned NOT NULL DEFAULT ‘0’,
max_connections int(11) unsigned NOT NULL DEFAULT ‘0’,
max_user_connections int(11) unsigned NOT NULL DEFAULT ‘0’,
plugin char(64) COLLATE utf8_bin NOT NULL DEFAULT ‘mysql_native_password’,
authentication_string text COLLATE utf8_bin,
password_expired enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
password_last_changed timestamp NULL DEFAULT NULL,
password_lifetime smallint(5) unsigned DEFAULT NULL,
account_locked enum(‘N’,‘Y’) CHARACTER SET utf8 NOT NULL DEFAULT ‘N’,
PRIMARY KEY (Host,User)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT=‘Users and global privileges’

2、重要字段

  • Host 用于用户登录主机限制,%表示不限制
  • User 账户用户名
  • authentication_string 账户密码,修改该字段修改密码
  • account_locked 是否锁定账户布尔变量。
  • password_lifetime 账户密码过期时间,时间为倒计时

3、常用user表操作

查询数据库账户
>select user,host from mysql.user;
查询账户锁定账户
>select user,host,account_locked from mysql.user where account_locked=‘Y’;
修改账户密码
update mysql.user set authentication_string = password(‘123456’) where user = ‘root’ and host = ‘localhost’;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

恒悦sunsite

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值