数据库
information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
performance_schema: 提供用于在运行时检查服务器的内部执行的信息。
mysql: mysql系统数据库,其中包含MySQL服务器运行时所需的信息。
mysql数据库中的 表属于这些类别:
授予系统表
• user:用户帐户,全局权限和其他非特权列。
• db:数据库级特权
• tables_priv:表级特权。
• columns_priv:列级权限。
• procs_priv:存储过程和功能特权。
• proxies_priv:代理用户权限。
对象信息系统表
• event:有关事件计划程序事件的信息。
• func:有关用户定义函数(UDF)的信息。
• plugin:有关服务器端插件的信息。。
在此之前,该plugin表使用InnoDBMySQL 5.7.6 MyISAM之前的 存储引擎 。
• proc:有关存储过程和功能的信息。
日志系统表
• general_log:一般查询日志表。
• slow_log:慢查询日志表。
服务器端帮助系统表
• help_category:有关帮助类别的信息。
• help_keyword:与帮助主题相关联的关键字。
• help_relation:帮助关键词和主题之间的映射。
• help_topic:帮助主题内容
时区系统表
• time_zone:时区ID以及它们是否使用闰秒。
• time_zone_leap_second:当闰秒发生时。
• time_zone_name:时区ID和名称之间的映射。
• time_zone_transition, time_zone_transition_type:时区说明
复制系统表
• gtid_executed:存储GTID值的表。请参阅 mysql.gtid_executed表。
• ndb_binlog_index:NDB群集复制的二进制日志信息。
• slave_master_info, slave_relay_log_info, slave_worker_info:用于存储从服务器上复制信息。。
优化器系统表
• innodb_index_stats, innodb_table_stats用于 InnoDB持久优化器统计。
• server_cost, engine_cost:优化器成本模型使用包含有关查询执行期间发生的操作的成本估算信息的表。server_cost包含一般服务器操作的优化器成本估算。 engine_cost包含特定存储引擎特定操作的估计。
杂项系统表
• audit_log_filter, audit_log_user如果安装了MySQL企业审核,这些表提供了审核日志过滤器定义和用户帐户的持久存储。firewall_users, firewall_whitelist如果安装了MySQL Enterprise Firewall,这些表为防火墙使用的信息提供持久存储。
• servers:由 FEDERATED存储引擎使用
sys: 主要存储数据库服务器的性能参数
mysqld
要查看服务器将根据其编译的默认值和其读取的任何选项文件使用的值
mysqld --verbose --help
要查看服务器将根据其编译的默认值使用的值,忽略任何选项文件中的设置
mysqld --no-defaults --verbose --help
系统变量
查看系统变量:
SHOW VARIABLES;
SHOW VARIABLES LIKE'connections';
SHOW VARIABLES LIKE'%size%';
SHOW GLOBAL VARIABLES LIKE'%size%';
如果既不指定GLOBAL也不指定SESSION,MySQL返回SESSION值。
查看运行的服务器的一些统计和状态指示符
SHOW STATUS;
系统变量存在两个范围。全局变量影响服务器的整体运行。会话变量影响其对各个客户端连接的操作。给定的系统变量可以同时具有全局值和会话值。
To indicate that a variable is a global variable, precede its name by the GLOBAL keyword or the @@global. qualifier:
SET GLOBAL max_connections = 1000;
SET @@global.max_connections = 1000;
To indicate that a variable is a session variable, precede its name by the SESSION keyword or either the @@session. or @@ qualifier:
SET SESSION sql_mode = 'TRADITIONAL';
SET @@session.sql_mode = 'TRADITIONAL';
SET @@sql_mode = 'TRADITIONAL';
Setting a session variable normally requires no special privilege, although there are exceptions that require the SUPER privilege (such as sql_log_bin). A client can change its own session variables, but not those of any other client.
LOCAL and @@local. are synonyms for SESSION and @@session..
If no modifier is present, SET changes the session variable.
常用系统变量
show variables like '%dir%'; ――查看系统目录
SQL模式
MySQL服务器可以在不同的SQL模式下运行,并且可以根据sql_mode系统变量的值对不同的客户端应用这些模式。DBA可以设置全局SQL模式以匹配站点服务器操作需求,并且每个应用程序可以将其会话SQL模式设置为自己的要求。
模式影响MySQL支持的SQL语法,并且它执行的数据验证检查。这使得在不同环境中使用MySQL更容易,并将MySQL与其他数据库服务器一起使用。
在MySQL 5.7的默认SQL模式包括以下模式:
ONLY_FULL_GROUP_BY,
STRICT_TRANS_TABLES,
NO_ZERO_IN_DATE,
NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,
NO_AUTO_CREATE_USER,
NO_ENGINE_SUBSTITUTION。
设置SQL模式
To set the SQL mode at server startup, use the --sql-mode=“modes” option on the command line, or sql-mode=“modes” in an option file such as my.cnf (Unix operating systems) or my.ini (Windows). modes is a list of different modes separated by commas. To clear the SQL mode explicitly, set it to an empty string using --sql-mode="" on the command line, or sql-mode="" in an option file.
To change the SQL mode at runtime, set the global or session sql_mode system variable using a SET statement:
SET GLOBAL sql_mode = 'modes';
SET SESSION sql_mode = 'modes';
Plugins
系统注册插件表:
mysql.plugin
安装
[mysqld]
plugin-load=myplugin=somepluglib.so
--plugin-load="x;y"
or
INSTALL PLUGIN myplugin SONAME 'somepluglib.so';
许多插件可以在服务器启动时或运行时加载。但是,如果插件设计为在服务器启动期间必须加载并初始化:
mysql> INSTALL PLUGIN myplugin SONAME 'somepluglib.so';
ERROR 1721 (HY000): Plugin 'myplugin' is marked as not dynamically
installable. You have to stop the server to install it.
In this case, you must use --plugin-load, --plugin-load-add, or --early-plugin-load.
控制激活状态:
--plugin_name=OFF
通知服务器禁用该插件。这可能不适用于某些内置插件,例如 mysql_native_password。
--plugin_name[=ON]
通知服务器启用插件。
--plugin_name=FORCE
插件启动失败,服务不启动
--plugin_name=FORCE_PLUS_PERMANENT
禁止插件卸载
卸载:UNINSTALL PLUGIN
它无法卸载内置于服务器的插件
它不能卸载服务器启动的 插件
查看:
SELECT * FROM information_schema.PLUGINS\G
PLUGIN_LIBRARY value of NULL are built in and cannot be unloaded.
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS;
mysql> show plugins;