MySQL 8.0 新特性:Persisted System Variables

文若3年前技术文章909


一、前言

MySQL 5.7 之前我们修改参数变量后,需要将其手动写入到服务端配置文件中,否则重启后又恢复原有的配置,在 8.0 中可以在 MySQL 客户端直接将参数持久化,节省在服务器操作的步骤,下面我们一起测试一下,


二、测试

max_connections 参数为例:

carbon-1.png

目前 `max_connectios` 设置为 1000 当我们使用 set global 设置为 1200 后,参数并没有持久化,重启之后依然为 1000 👇

carbon (1).png

重启 MySQL 参数依然为 1000

carbon (2).png

接下来我们使用 8.0 新特性 PERSIST 测试一下

SET PERSIST max_connections = 1200;

carbon-1.png

重启 MySQL 发现 max_connections = 1200 参数已经被持久化

carbon-1.png

二、原理

当使用 PERSIST 关键字时,变量更改将更新到数据目录中的 mysqld-auto.cnf 选项文件。mysqld-auto.cnf 是仅在第一次执行 PERSIST 或 PERSIST_ONLY 语句时创建的 JSON 格式文件。内容如下👇

carbon-1.png

  • SET PERSIST
    语句可以修改内存中变量的值,并且将修改后的值写⼊数据⽬录中的 mysqld-auto.cnf 中。

  • SET PERSIST_ONLY
    语句不会修改内存中变量的值,只是将修改后的值写⼊数据⽬录中的 mysqld-auto.cnf 中。


当需要修改只读变量时,如果使用 PERSIST 会出👇错误:
ERROR 1238 (HY000): Variable 'innodb_log_file_size' is a read only variable
此时需要使用 PERSIST_ONLY 修改,重启后生效。


清空变量设置


RESET PERSIST;


需要的权限


GRANT SYSTEM_VARIABLES_ADMIN, PERSIST_RO_VARIABLES_ADMIN, SHUTDOWN on *.* to 'admin'@'localhost';



相关文章

MySQL 复制-无数据环境搭建异步复制

MySQL 复制-无数据环境搭建异步复制

全新初始化(新环境,无数据)搭建 MySQL 异步复制 & GTID 复制标准文档。一、前言环境说明:操作系统 CentOS 7  & 数据库版本 5.7.32参数要求:主库必须开启...

 MySQL运维实战之Clone插件(10.1)使用Clone插件

MySQL运维实战之Clone插件(10.1)使用Clone插件

clone插件介绍mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表,clone得到的...

DDoS木马攻击处理

DDoS木马攻击处理

问题描述云安全中心提示安全告警如下:恶意脚本代码执行DDoS木马问题解决安全组方向封禁查看次访问地址205.185.119.110 地址为国外一地址,去下载恶意脚本,因此在服务器出入安全组方向做了封禁...

ReadConcern与WriteConcern

一、ReadConcern1、ReadConcern vs ReadPreferenceReadPreference 主要控制从副本集哪个节点来读取数据,该参数可以实现读写分离、就近读取的功能prim...

PG的执行计划

一、Explain基本使用1.1 命令解释explain [ ( option [,...] ) ] statement explain [ analyze ] [ verbose ] statem...

Impala 操作命令

Impala 操作命令

Impala的外部shell选项描述-h, --help显示帮助信息-v or --version显示版本信息-i hostname, --impalad=hostname 指定连接运行 impala...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。