iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何理解MySQL 8.0中的全局参数持久化
  • 748
分享到

如何理解MySQL 8.0中的全局参数持久化

2024-04-02 19:04:59 748人浏览 薄情痞子
摘要

本篇内容介绍了“如何理解Mysql 8.0中的全局参数持久化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“如何理解Mysql 8.0中的全局参数持久化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

如何理解MySQL 8.0中的全局参数持久化

自从 2018 年发布第一版 mysql 8.0.11 正式版至今,Mysql 版本已经更新迭代到 8.0.26,相对于稳定的 5.7 版本来说,8.0 在性能上的提升是毋庸置疑的!

随着越来越多的企业开始使用 MySQL 8.0 版本,对于 DBA 来说是一个挑战,也是一个机遇!

本文主要讨论下 MySQL 8.0 版本的新特性:全局参数持久化。【相关推荐:mysql视频教程

全局参数持久化

MySQL 8.0 版本支持在线修改全局参数并持久化,通过加上 PERSIST 关键字,可以将修改的参数持久化到新的配置文件(mysqld-auto.cnf)中,重启 MySQL 时,可以从该配置文件获取到最新的配置参数!

对应的Worklog [WL#8688]:https://dev.mysql.com/worklog/task/?id=8688

启用这个功能,使用特定的语法 SET PERSIST 来设定任意可动态修改的全局变量!

  • SET PERSIST

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

  • SET PERSIST_ONLY

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

max_connections 参数为例:

mysql> select * from perfORMance_schema.persisted_variables;
Empty set (0.00 sec)

mysql> show variables like '%max_connections%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| max_connections        | 151   |
| mysqlx_max_connections | 100   |
+------------------------+-------+
2 rows in set (0.00 sec)

mysql> set persist max_connections=300;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME   | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 300            |
+-----------------+----------------+
1 row in set (0.00 sec)

系统会在数据目录下生成一个包含 JSON 格式的 mysqld-auto.cnf 的文件,格式化后如下所示,当 my.cnf 和mysqld-auto.cnf 同时存在时,后者具有更高优先级。

{
    "Version": 1, 
    "mysql_server": {
        "max_connections": {
            "Value": "300", 
            "Metadata": {
                "Timestamp": 1632575065787609, 
                "User": "root", 
                "Host": "localhost"
            }
        }
    }
}

注意: 即使你通过 SET PERSIST 修改配置的值并没有任何变化,也会写入到 mysqld-auto.cnf 文件中。但你可以通过设置成 DEFAULT 值的方式来恢复初始默认值!

如果想要恢复 max_connections 参数为初始默认值,只需要执行:

mysql> set persist max_connections=DEFAULT;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from performance_schema.persisted_variables;
+-----------------+----------------+
| VARIABLE_NAME   | VARIABLE_VALUE |
+-----------------+----------------+
| max_connections | 151            |
+-----------------+----------------+
1 row in set (0.00 sec)

如果想要移除所有的全局持久化参数,则只需执行:

mysql> RESET PERSIST;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from performance_schema.persisted_variables;
Empty set (0.00 sec)

当然,删除 mysqld-auto.cnf 文件后,重启 MySQL 也可!

写在最后

主要代码:Commit f2bc0f89b7f94cc8fe963D08157413a01d14d994

主要入口函数(8.0.0):

接口函数大多定义在sql/persisted_variable.cc文件中:
启动时载入mysqld-auto.cnf的内容: Persisted_variables_cache::load_persist_file(); 通过json解析合法性,并存入内存
将文件中读取的配置进行设置: Persisted_variables_cache::set_persist_options
 
运行SET PERSIST命令时,调用Persisted_variables_cache::set_variable 更新内存中存储的值
写入mysqld-auto.cnf文件中: Persisted_variables_cache::flush_to_file

“如何理解MySQL 8.0中的全局参数持久化”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: 如何理解MySQL 8.0中的全局参数持久化

本文链接: https://www.lsjlt.com/news/61815.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解MySQL 8.0中的全局参数持久化
    本篇内容介绍了“如何理解MySQL 8.0中的全局参数持久化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • MySQL8新特性之全局参数持久化详解
    目录前言全局参数持久化写在最后总结参考文档:前言 自从 2018 年发布第一版 MySQL 8.0.11 正式版至今,MySQL 版本已经更新迭代到 8.0.26,相对于稳定的 5...
    99+
    2024-04-02
  • 如何在MySQL8中修改持久化全局变量
    这篇文章将为大家详细讲解有关如何在MySQL8中修改持久化全局变量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。mysql> show&nb...
    99+
    2024-04-02
  • 如何在mysql中设置持久化
    如何在mysql中设置持久化?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、持久化的设置MySQL的设置可以在运行时通过SET GLOBAL命令来更改,但是这...
    99+
    2023-06-15
  • 如何理解持久化框架DataNucleus 3.0.8
    如何理解持久化框架DataNucleus 3.0.8,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。DataNucleus Access Platform 是一个兼容各种标准...
    99+
    2023-06-17
  • K8s中MySQL 数据持久化存储的实现
    目录一、步骤二、实践2.1 创建 PV 和 PVC2.2 部署 mysql 服务2.3 创建测试数据2.4 模拟节点宕机2.5 数据一致性验证FAQ一、步骤 (1)创建 PV 和 PVC。 (2)部署 MySQL 服务。...
    99+
    2023-01-09
    K8s MySQL数据持久化存储 K8s MySQL数据持久化
  • 在React-Native中如何持久化redux数据
    这篇文章主要为大家展示了“在React-Native中如何持久化redux数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在React-Native中如何持久...
    99+
    2024-04-02
  • K8s中MySQL 数据持久化存储的实现
    目录一、步骤二、实践2.1 创建 PV 和 PVC2.2 部署 MySQL 服务2.3 创建测试数据2.4 模拟节点宕机2.5 数据一致性验证FAQ一、步骤 (1)创建 PV 和 P...
    99+
    2023-01-08
    K8s MySQL数据持久化存储 K8s MySQL数据持久化
  • 如何理解TestNG参数化
    本篇内容介绍了“如何理解TestNG参数化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一组参数化数据定义...
    99+
    2024-04-02
  • 详解PHP中的数据库连接持久化
    目录PHP中的数据库连接持久化什么是数据库连接持久化连接持久化有什么用?效率对比注意总结PHP中的数据库连接持久化 数据库的优化是我们做web开发的重中之重,甚至很多情况下其实我们...
    99+
    2024-04-02
  • 在Unity中如何实现数据的持久化存储
    在Unity中实现数据的持久化存储可以通过以下几种方式: PlayerPrefs:Unity自带的一种简单的持久化存储方案,可以存...
    99+
    2024-05-09
    Unity
  • 如何在Storm中实现数据的持久化存储
    在Storm中实现数据的持久化存储通常可以通过以下几种方法: 使用数据库:可以将Storm处理的数据存储到关系型数据库(如MySQ...
    99+
    2024-04-09
    Storm
  • Kafka如何处理消息的持久化存储
    Kafka处理消息的持久化存储是通过将消息写入磁盘中的日志文件来实现的。每个主题都有一个或多个分区,每个分区都有一个对应的日志文件,...
    99+
    2024-03-11
    Kafka
  • 如何在ApacheBeam中实现数据的持久化和恢复
    在Apache Beam中,可以使用不同的数据存储和处理引擎来实现数据的持久化和恢复。以下是一些常见的方式: 使用文件系统:可以将...
    99+
    2024-03-11
    Beam
  • 如何理解SQL Server SQL性能优化中的参数化
    如何理解SQL Server SQL性能优化中的参数化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库参数化的模式数据库的...
    99+
    2024-04-02
  • Redis做数据持久化的解决方案及底层原理
    目录数据持久化RDB生成方法savebgsave优点缺点AOFAOF记录过程ServerCron作用server.hz写入策略End之前的文章介绍了Redis的简单数据结构的相关使用...
    99+
    2024-04-02
  • 如何解决gearman队列持久化引发的问题
    这篇文章主要讲解了“如何解决gearman队列持久化引发的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决gearman队列持久化引发的问题”吧!具体分析如下:一、gearman ...
    99+
    2023-06-09
  • 如何理解MySQL全面快速优化
    这期内容当中小编将会给大家带来有关如何理解MySQL全面快速优化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 0、导读全面的MySQL快速优化参考 这里整理了一些M...
    99+
    2024-04-02
  • 如何解密Redis的持久化和主从复制机制
    这篇文章将为大家详细讲解有关如何解密Redis的持久化和主从复制机制,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 小编将为大...
    99+
    2024-04-02
  • 如何理解Oracle分布式系统中的全局数据库名
    今天就跟大家聊聊有关如何理解Oracle分布式系统中的全局数据库名,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在分布式系统中,每个数据库都有一个唯...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作