MySQL - RESET PERSIST 语句
MySQL RESET PERSIST 语句
您可以使用 RESET PERSIST 语句从 MySQL 服务器中删除全局变量。使用此语句删除变量后,该变量将不再存在于 mysqld-auto.cnf 文件中。要使用此语句删除动态系统变量,您需要 SYSTEM_VARIABLES_ADMIN 权限;要删除只读系统变量,您还需要 PERSIST_RO_VARIABLES_ADMIN 权限。
语法
以下是 MySQL RESET PERSIST 语句的语法。
RESET PERSIST [[IF EXISTS] system_var_name]
其中,system_var_name 是您需要删除的全局变量的名称。
示例
MySQL 中的 SET 语句用于为变量赋值。使用此语句,我们可以将持久变量设置为 -
SET PERSIST max_relay_log_size = 12; SET @@PERSIST.max_relay_log_size = 12;
以下语句将从 mysqld-auto.cnf 文件中删除上面创建的全局变量 -
RESET PERSIST max_relay_log_size;
删除所有 persist 变量
如果在未指定任何变量的情况下执行 RESET PERSIST 变量,则 mysqld-auto.cnf 中的所有变量都将被删除。
RESET PERSIST;
IF EXISTS 子句
如果您尝试从 mysqld-auto.cnf 中删除不存在的全局变量,将生成如下所示的错误 -
RESET PERSIST max_relay_log_size; ERROR 3615 (HY000): Variable max_relay_log_size does not exist in persisted config file
如果将 IF EXISTS 子句与 RESET PERSIST 语句一起使用(如下所示),则指定的变量将被删除;如果给定名称的变量不存在,则查询将被忽略。
DROP TABLE IF EXISTS max_relay_log_size;