网站建设公司哪家好 皆来磐石网络,怎样自己制作公司网站上传,怎么做自己的优惠淘网站,便捷网站建设哪家便宜MySQL的系统变量用于控制服务器的操作。它们可以是全局的#xff08;影响整个MySQL服务器实例#xff09;#xff0c;也可以是会话的#xff08;仅影响当前客户端会话#xff09;#xff0c;或者两者兼有。
你可以使用SET语句来动态地改变这些变量的值。例如#xff1a…MySQL的系统变量用于控制服务器的操作。它们可以是全局的影响整个MySQL服务器实例也可以是会话的仅影响当前客户端会话或者两者兼有。
你可以使用SET语句来动态地改变这些变量的值。例如
设置全局系统变量的运行时值
使用set global语句该语句需要system_VARIABLES_ADMIN权限或不推荐使用的SUPER权限。例如
SET GLOBAL max_connections 1000;
设置会话变量仅影响当前会话
SET SESSION sort_buffer_size 256K;
将全局系统变量的值持久化到 mysqld-auto.cnf 文件并设置运行时值
使用set persist语句该语句需要system_VARIABLES_ADMIN或SUPER权限。
仅将全局系统变量的值持久化到 mysqld-auto.cnf 文件不设置运行时值
使用SET persist_ONLY语句该语句需要system_VARIABLES_ADMIN和persist_RO_VARIABLES_ADMIN权限。SET PERSIST_ONLY既可用于动态系统变量也可用于只读系统变量但对于不能使用SET PERSIST的持久只读变量特别有用。
持久化限制的系统变量
一些全局系统变量是持久受限的。要持久化这些变量请使用SET persist_ONLY语句该语句需要前面描述的权限。此外必须使用加密连接连接到服务器并提供具有由persist_only_admin_x509_Subject系统变量指定的Subject值的SSL证书。
例如
SET PERSIST max_connections 1000;
或者
SET GLOBAL PERSIST max_connections 1000;
要从mysqld-auto.cnf文件中删除持久化的全局系统变量请使用RESET PERSIST语句。这些特权适用于
对于动态系统变量RESET PERSIST需要system_variables_ADMIN或SUPER权限。对于只读系统变量RESET PERSIST需要system_variables_ADMIN和PERSIST_RO_variables_ADMIN权限。对于持久受限变量RESET persist不需要使用特定SSL证书加密连接到服务器。
例如
RESET PERSIST max_connections;
如果全局系统变量对前面的特权要求有任何异常则变量描述会指示这些异常。示例包括default_table_encryption和commandory_roles它们需要额外的权限。这些附加权限适用于设置全局运行时值的操作但不适用于保留该值的操作。
要设置会话系统变量运行时值请使用set session语句。与设置全局运行时值相比设置会话运行时值通常不需要特殊权限任何用户都可以进行设置以影响当前会话。对于某些系统变量设置会话值可能会在当前会话之外产生影响因此这是一项受限制的操作只能由具有特殊权限的用户执行
从MySQL 8.0.14开始所需的权限为SESSION_VARIABLES_ADMIN。
任何具有SYSTEM_VARIABLES_ADMIN或SUPER的用户实际上隐含地具有SESSION_VARIABLES _ADMIN并且无需明确授予SESSION_VARIABLES_AADMIN。
在MySQL 8.0.14之前所需的权限是SYSTEM_VARIABLES_ADMIN或SUPER。
如果会话系统变量受到限制则变量描述会指示该限制。示例包括binlog_format和sql_log_bin。设置这些变量的会话值会影响当前会话的二进制日志记录但也可能对服务器复制和备份的完整性产生更广泛的影响。
SESSION_VARIABLES_ADMIN使管理员能够最大限度地减少先前可能已被授予SYSTEM_VARIABLES _ADMIN或SUPER的用户的权限占用以使他们能够修改受限制的会话系统变量。假设管理员创建了以下角色以授予设置受限会话系统变量的能力
CREATE ROLE set_session_sysvars;
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO set_session_sysvars;
任何被授予set_session_sysvars角色的用户以及该角色处于活动状态的用户都可以设置受限制的会话系统变量。然而该用户也能够设置全局系统变量这可能是不希望的。
通过将角色修改为具有SESSION_VARIABLES_ADMIN而不是SYSTEM_VARIABLES _ADMIN可以将角色权限减少为设置受限会话系统变量的能力而不设置其他内容。要修改角色请使用以下语句
GRANT SESSION_VARIABLES_ADMIN ON *.* TO set_session_sysvars;
REVOKE SYSTEM_VARIABLES_ADMIN ON *.* FROM set_session_sysvars;
修改角色会立即生效任何被授予set_session_sysvars角色的帐户都不再具有SYSTEM_VARIABLES_ADMIN并且在没有明确授予该功能的情况下无法设置全局系统变量。类似的GRANT/REVOKE序列可以应用于直接授予SYSTEM_VARIABLES_ADMIN而不是通过角色授予的任何帐户。