加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_常德站长网 (https://www.0736zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL8持久化系统变量

发布时间:2022-09-19 14:55:36 所属栏目:MySql教程 来源:
导读:  set命令可以用于将某些全局系统变量持久化到数据目录中的mysqld-auto.cnf文件中,以影响后续启动的服务器操作。

  reset persist从mysqld-auto.cnf中删除持久设置。

  在运行时持久化全局系统变量

  set命令可以用于将某些全局系统变量持久化到数据目录中的mysqld-auto.cnf文件中,以影响后续启动的服务器操作。
 
  reset persist从mysqld-auto.cnf中删除持久设置。
 
  在运行时持久化全局系统变量的能力使server配置能够在其启动时保持不变。
 
  尽管许多系统变量可以在启动时从my.cnf选项文件中设置,或者在运行时使用set语句设置,但这些配置方法要么需要登录到服务器主机,要么不提供持久配置的能力:
 
  ·修改配置文件需要直接访问该文件,这需要登录访问mysql服务器主机。这并不总是很方便
 
  ·使用set global修改系统变量是一种运行时功能,可以从本地运行的客户端或远程主机完成mysql持久化,但更改仅影响当前运行的服务器实例。这些设置不是持久的,不会延续到后续的服务器启动。
 
  为了增强配置的管理功能,超出通过编辑配置文件或使用set global所能实现的功能,mysql提供了set语法的变体,将系统变量设置保存到数据目录中名为mysqld-auto.cnf的文件中。
 
  例子:
 
  set persist max_connections=1000;set @@persist.max_ocnnections=1000;
  要将全局系统变量持久保存到mysqld-auto.cnf文件而不设置全局变量运行时的值,请在变量名称前加上persist_only关键字或@@persist_only。限定词:
 
  set persist_only back_log = 100;set @@persist_only.back_log = 100;
  同时,提供了reset persist命令来移除文件mysqld-auto.cnf中的系统变量。
 
  移除mysqld-auto.cnf中所有的系统变量
 
  reset persist;
  移除mysqld-auto.cnf中指定的系统变量
 
  reset persist system_var_name;reset persist if exists system_var_name;
  使用persist设置的变量有以下特征:
 
  ·持久设置是在运行时进行的
 
  ·持久设置是永久的,重启后仍然有效
 
  ·可以从本地客户端或从远程主机连接的客户端进行持久设置。这为从集中的主机远程配置多个mysql提供了便利。
 
  ·要持久化系统变量,不需要具有对mysql服务器主机的登录访问权限或对选项文件的文件系统访问权限。
 
  ·具有足够权限的管理员可以通过持久化系统变量来重新配置服务器,然后通过执行restart语句使服务器立即使用更改的设置。
 
  ·持久设置提供有关错误的即时反馈。手动输入设置中的错误可能要到很久以后才会被发现。set语句避免了格式错误的设置的可能性,因为带有语法错误的设置不会成功并且不会更改服务器配置。
 
  performance_schema.persisted_variables表提供了一个sql接口,来查看mysqld-auto.cnf中的变量。
 
  performance_schema.variables_info表提供了是谁,什么时候做的变量持久化修改。
 
  reset persist影响performance_schema.persisted_variables表表的内容,因为表内容对应于mysqld-auto.cnf文件的内容。另一方面,因为reset persist不会改变变量值,所以它对performance_schema.variables_info表表的内容没有影响,直到服务器重新启动。
 

(编辑:应用网_常德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!