首页 > 数据库 >【MySQL】MySQL8持久化系统变量

【MySQL】MySQL8持久化系统变量

时间:2022-08-27 17:00:15浏览次数:50  
标签:set 持久 变量 MySQL8 auto MySQL cnf persist

set命令可以用于将某些全局系统变量持久化到数据目录中的mysqld-auto.cnf文件中,以影响后续启动的服务器操作。
reset persist从mysqld-auto.cnf中删除持久设置。

在运行时持久化全局系统变量的能力使server配置能够在其启动时保持不变。
尽管许多系统变量可以在启动时从my.cnf选项文件中设置,或者在运行时使用set语句设置,但这些配置方法要么需要登录到服务器主机,要么不提供持久配置的能力:
·修改配置文件需要直接访问该文件,这需要登录访问mysql服务器主机。这并不总是很方便
·使用set global修改系统变量是一种运行时功能,可以从本地运行的客户端或远程主机完成,但更改仅影响当前运行的服务器实例。这些设置不是持久的,不会延续到后续的服务器启动。

为了增强配置的管理功能,超出通过编辑配置文件或使用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表表的内容没有影响,直到服务器重新启动。

标签:set,持久,变量,MySQL8,auto,MySQL,cnf,persist
From: https://www.cnblogs.com/abclife/p/16630909.html

相关文章

  • mysql在Linux与widows安装
    一、mysql的安装之前搭建linux下项目的发布,最后遗留的问题时数据库的迁移,如何从windows上迁移到linux上?这里首先进行mysql数据库的安装1、下载mysql安装包在这里下载的......
  • koa连接mysql数据库
    app.js中的代码:constKoa=require('koa2');constapp=newKoa();constport=5050;constRouter=require('koa-router');constrouter=newRouter();cons......
  • Mysql 常用命令
    大纲命令执行事务STARTTRANSACTION;//开启事务UPDATE`Users`SETAccountId=0WHEREAccountIdisnullCOMMIT;//提交ROLLBACK;//回滚常见问题Q1.允......
  • mysql逻辑结构,存储结构
    宏观:库,存储在操作系统目录中表:  微观:段区页一个表就是一个段,mysql分配空间时至少分配一个区,每个区默认时1M(64个page页),mysql最小的IO单元就是PAGE(16KB) ......
  • mysql常用操作汇总
    工作中经常用会遇到这种情况,可以访问mysql所在的服务器,但是服务器端口不对外暴露(通常因为安全原因)。这时,操作数据库只能通过命令行和mysqlclient窗口来实现。我对这些操作......
  • mysql执行时的sql_mode设置
    查询当前MySQL的模式:select@@sql_mode;  根据需要设置模式,这里是将ONLY_FULL_GROUP_BY去掉:SETSESSIONsql_mode=(SELECTREPLACE(@@sql_mode,'ONLY_FULL_GROUP......
  • mysql-开启日志记录功能
    开启日志记录功能--开启功能SETGLOBALgeneral_log=ON;--保存到文件SETGLOBALlog_output='file';查看日志内容--查看日志保存位置及开启状态showvariab......
  • MySQL十六:36张图理解Buffer Pool
    转载~在应用系统中,我们为加速数据访问,会把高频的数据放在「缓存」(Redis、MongoDB)里,减轻数据库的压力。在操作系统中,为了减少磁盘IO,引入了「缓冲池」(bufferpool)机制......
  • MySQL十七:Change Buffer
    转载~在之前的文章《InnoDB的存储结构》介绍的InnoDB的存储结构的组成中,我们知道ChangeBuffer也是用InnoDB内存结构的组成部分。ChangeBuffer主要是为了在写入是减少......
  • Mysql----外连接,约束
    《外连接》这个外连接其实就是解决多张表笛卡尔集的问题:比如:    我有如上两张表,我想要显示出全部学生的成绩,没有成绩的同学默认成绩为NULL按照以前的方法,要将......