根据支持 LTS(长期支持)发布的新发布模型,给定的 MySQL 服务器将分为以下两类:

要么是 LTS 版本。

要么是创新版本。

本博客文章将解释如何确定给定的 MySQL 服务器是否为 LTS 版本。

定义发布类型

MySQL 服务器源代码存储库中包含一个名为 MYSQL_VERSION 的文件,用于定义当前发布的版本号。我们已向此文件添加了另一个字段,名为 MYSQL_VERSION_MATURITY。以下是一个示例文件,用于描述 8.4.1 的更新版本,这是一个 LTS 版本:

MYSQL_VERSION_MAJOR=8

MYSQL_VERSION_MINOR=4

MYSQL_VERSION_PATCH=1

MYSQL_VERSION_EXTRA=-u1

MYSQL_VERSION_MATURITY="LTS"

这个新字段由 cmake 识别,它定义了一个变量,可以在后续的 cmake 处理中使用。Cmake 还添加了一个定义,MySQL 服务器源代码可以识别。在上面的示例中,我们定义了字段 MYSQL_VERSION_EXTRA 的值为 "-u1"。这仅在云构建中使用,表示当前发布是 8.4.0 的更新版本。通常,对于本地发布,该字段为空。

嵌入 LTS 发布类型元数据

作为 cmake 处理的一部分,会生成一个名为 INFO_SRC 的文件,其中包含有关源代码的元数据。该文件已经是打包和安装过程的一部分,并且可以在安装服务器后在 MySQL 服务器主机上读取。例如,对于 RPM 软件包,该文件位于:/usr/share/doc/mysql-cloud-server-8.4.0/INFO_SRC。因此,可以基于服务器安装来确定发布类型,甚至无需启动 MySQL 服务器。以下是文件 INFO_SRC 的示例内容:

commit: 0fef7649b3baf3601b0b2574585a381032d6f73b

date: 2023-10-16 11:58:04 +0200

created at: 2023-10-26 11:33:21Z

branch: mysql-trunk

MySQL source 8.4.1-u1

MySQL release maturity LTS

...

MySQL 服务器升级历史

过去,MySQL 服务器通常会生成一个名为 mysql_upgrade_info 的文件,其中包含上次完成的 MySQL 服务器升级的版本号。该文件已被弃用,并已被移除。相反,现在我们生成一个名为 mysql_upgrade_history 的文件。该文件在服务器第一次初始化时生成。然后,对于每次成功的升级,我们将向该文件添加一个条目,因此它将包含已访问包含该文件的数据目录的 MySQL 服务器版本的追踪记录。该文件包含升级的时间戳、完整版本字符串和发布成熟度类型,以 JSON 数组的形式结构化。请注意,完整版本字符串将包括来自文件 MYSQL_VERSION 的 MYSQL_VERSION_EXTRA 字段,因此版本字符串可能不仅包含版本号。文件中的第一个条目(即服务器初始化时)也标记为 "initialize": true。以下是文件 mysql_upgrade_history 的示例内容:

{

"file_format": "1",

"upgrade_history": [

{

"date": "2024-05-21T01:02:03Z",

"version": "8.4.1-u1",

"maturity": "LTS",

"initialize": true

},

{

"date": "2023-05-22T01:02:03Z",

"version": "9.0.0",

"maturity": "INNOVATION"

}

]

}

结论和进一步工作

INFO_SRC 和 mysql_upgrade_history 文件均可在无需启动 MySQL 服务器的情况下进行读取;因此,可以以非侵入性的方式确定发布类型。然而,通过针对正在运行的服务器执行 SQL 语句来确定发布类型也可能很有用。支持此功能的一种可能性是添加一个信息模式视图或状态变量,其中包含与 mysql_upgrade_history 文件相同的信息。尽管目前尚不支持通过 SQL 访问这些信息,但在以后的版本中可能值得考虑。

转载翻译自MySQL官方博客:https://blogs.oracle.com/mysql/post/determine-whether-lts-release-or-not

文章看完了,如果觉得本文对您的工作或生活有用,希望分享给你身边的朋友,一起学习,共同进步哈~~~

欢迎关注我的公众号【数库信息技术】,你的关注是我写作的动力源泉

各大平台都可以找到我:

————————————————————————————

公众号:数库信息技术

墨天轮:https://www.modb.pro/u/427810

百家号:https://author.baidu.com/home/1780697309880431

CSDN :https://blog.csdn.net/rscpass

51CTO: https://blog.51cto.com/u_16068254

博客园:https://www.cnblogs.com/shukuinfo

知乎:https://www.zhihu.com/people/shukuinfo

————————————————————————————

[昌哥IT课堂]|如何确定 MySQL 服务器是否为 LTS 版本(译)的更多相关文章

  1. 闰秒导致MySQL服务器的CPU sys过高

    今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...

  2. 如何配置远程mysql服务器

    如何配置远程mysql服务器 分配用户权限 可以先看一下目前的用户权限状况: use mysql; select host,user,password from user; 然后分配新的权限给某一用户 ...

  3. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

  4. mysql服务器和配置优化

    一.存储引擎 mysql中有多种存储引擎,一般常见的有三种:   MyIsam InnoDB Memory 用途 快读 完整的事务支持 内存数据 锁 全表锁定 多种隔离级别的行锁 全表锁定 持久性 基 ...

  5. 远程连接mysql数据库时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111)

    在测试服务器上安装完mysql后, 服务器自己访问没有问题, 但是本地通过sql客户端连接时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111).在网上查了一些资料,解决方案 ...

  6. 登录phpmyadmin提示: #1045 无法登录 MySQL 服务器

    打开phpmyadmin,进行登录,出现以下问题,提示:#1045 无法登录 MySQL 服务器 或许出现以下错误情况:phpmyadmin:#1045 无法登录 MySQL 服务器.Access d ...

  7. 如何将自己的windows设置为mysql服务器

    1.安装mysql 服务器 2.创建超级用户,即 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; ...

  8. 一台MySQL服务器启动多个端口

    一台MySQL服务器启动多个端口 在测试Mysql多主一从服务器,即一个从服务器多端口同步不同主库.本文记录了开启不同端口的操作. 详细步骤: 1.首先要先把my.cnf配置文件复制一份,开几个端口要 ...

  9. 详解 Spotlight on MySQL监控MySQL服务器

    前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...

  10. 1104关于优化mysql服务器几个参数和思路

    转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...

随机推荐

  1. 使用 crontab 设置 Homebrew 自动更新

    本人有强迫症,希望自己电脑上安装的软件永远是最新的.App Store 有自动更新功能,然而 Homebrew 则没有自动更新的选项.每次手动更新的话时间长了又感觉麻烦.后来发现可以使用 cronta ...

  2. docker高级篇:实战-自己开发的微服务怎么在docker上面运行?

    通过前面的一系列学习,我们已经知道怎么制作dockerfile了.那么,本篇文章,咱们就把自己写的spring boot的demo项目,部署在docker上面. 案例目标: 我们自己开发的微服务怎么在 ...

  3. sentinel中如何使用@SentinelResource和openFeign来进行服务熔断和降级的操作

    sentinel 前方参考 计算QPS-Sentinel限流算法 https://www.cnblogs.com/yizhiamumu/p/16819497.html Sentinel 介绍与下载使用 ...

  4. Angular 18+ 高级教程 – Angular 的局限和 Github Issues

    前言 Angular 绝对有很多缺陷,Issue 非常多,workaround 非常多. 我以前至少有 subscribe 超过 20 个 Issues,几年都没有 right way 处理的. An ...

  5. Angular 18+ 高级教程 – 关于本教程

    版本声明 本教程写于 Angular v17,但往后的所有新功能,API 都有更新到相关文章里头,所以教程总是最新的,大家可以安心学习. 前言 光阴飞逝,一转眼,我尽然已经有两年多的时间完全没有接触 ...

  6. RxJS 系列 – Transformation Operators

    前言 前几篇介绍过了 Creation Operators Filter Operators Join Creation Operators Error Handling Operators 这篇继续 ...

  7. Java!!冲

    开始学习Java!!!

  8. abc292[AtCoder Beginner Contest 292] 题解

    写点题目转换下心情吧 A-CAPS LOCK 大水题 B-Yellow and Red Card 大水题 C-Four Variables 给定一个数\(N\),问有多少个有序正数数组\((A,B,C ...

  9. 关于pytorch中@和*的用处

    1.@是用来对tensor进行矩阵相乘的: import torch d = 2 n=50 X = torch.randn(n,d) true_w = torch.tensor([[-1.0],[2. ...

  10. dotnet Core 静态方法和构造方法

    // 静态方法: // 特点:1.生命周期一旦创建-应用结束 才会结束 2.全局的 3.效率高(放在内存中) // 用户:用户登录,系统配置信息,系统设置,SQLHelper // 注意:静态的东西创 ...