首页 > 数据库 >[昌哥IT课堂]|如何确定 MySQL 服务器是否为 LTS 版本(译)

[昌哥IT课堂]|如何确定 MySQL 服务器是否为 LTS 版本(译)

时间:2024-09-12 11:38:12浏览次数:1  
标签:LTS 文件 昌哥 MySQL VERSION MYSQL 服务器

 


根据支持 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

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

 

标签:LTS,文件,昌哥,MySQL,VERSION,MYSQL,服务器
From: https://www.cnblogs.com/shukuinfo/p/18409857

相关文章

  • mysql 5.7 删除ibdata1 、ib_logfile 文件的数据恢复
    简介:本文记录删除ibdata1、ib_logfile文件被意外删除且无法还原或损坏的解决方案,当删除后没有重启mysql可以查询进程号,找到删除的文件可以还原回来。参考其他文章。本文介绍ibdata1、ib_logfile文件无法找到或异常没有备份的情况处理。 新安装一台mysql用作从库......
  • MySQL生成指定月份所有日期列表
    SELECTADDDATE(month.firstDay,days.day-1)ASmonthDateFROM(SELECT1ASDAYUNIONALLSELECT2UNIONALLSELECT3UNIONALLSELECT4UNIONALLSELECT5UNIONALLSELECT6UNIONALLSELECT7UNIONALLSELECT8UNIONALLSELECT9UNIONALLSELECT10UNI......
  • 【mysql】mysql之优化
     本站以分享各种运维经验和运维所需要的技能为主《python零基础入门》:python零基础入门学习《python运维脚本》: python运维脚本实践《shell》:shell学习《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战《k8》从问题中去学习k8s《docker学习》暂未更新......
  • MySQL多表查询优化
    一、多表查询连接的选择:相信这内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上我就不说了。然后要告诉大家的是,需要根据查询的情况,想好使用哪种连接方式效率更高。二、MySQL的JOIN实现原理在MySQL中,只有一种Join算法,就是大名鼎鼎的NestedLoopJoin,他没......
  • MySQL学习笔记(二)InnoDB内存模型与磁盘同步机制
    InnoDB存储引擎ACID是我们在数据库设计的时候,尽可能的去满足的设计原则。A原子性、C一致性I隔离性D持久性,其中InnoDB存储引擎就是满足了我们ACID设计原则的。内存缓存结构(BufferPool)如果每次获取数据都去磁盘获取,这样效率明显比较慢。所以innoDB为了性......
  • 【重学 MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接
    【重学MySQL】二十五、等值连接vs非等值连接、自连接vs非自连接等值连接(Equijoin)vs非等值连接(Non-equijoin)等值连接(Equijoin)非等值连接(Non-equijoin)自连接(Self-join)vs非自连接(Non-self-join)自连接(Self-join)非自连接(Non-self-join)总结在MySQL中,连接(J......
  • 【重学 MySQL】二十四、笛卡尔积的错误和正确的多表查询
    【重学MySQL】二十四、笛卡尔积的错误和正确的多表查询笛卡尔积的理解和错误笛卡尔积的理解定义例子在数据库中的应用总结笛卡尔积的错误正确的多表查询使用INNERJOIN使用WHERE子句(隐式内连接)总结在数据库查询中,特别是涉及到多表查询时,理解笛卡尔......
  • MySQL原理之UUID主键分析,插入或更新语法分析
    目录1MySQL不能用UUID做主键1.1前言1.2mysql和程序实例1.2.1准备工作1.2.2开始测试1.2.3程序写入结果1.2.4效率测试结果1.3使用uuid和自增id的索引结构对比1.3.1自增id1.3.2uuid1.4自增id缺点1.5雪花算法2插入或更新2.1onduplicatekey2.1.1定义2.1.2values函数2......
  • DBeaver 连接 mysql 报错:Public Key Retrieval is not allowed
    前言DBeaver连接mysql报错:PublicKeyRetrievalisnotallowed遇到"PublicKeyRetrievalisnotallowed"错误时,通常意味着你正在使用的身份验证方法需要加密连接,但是没有正确地配置客户端或服务器来支持这种加密。解决第一种可以在连接字符串中添加allowPublicKeyRe......
  • mysql 连接失败:message from server: "Host '192.168.xx.xxx' is not allowed to conn
    前言mysql连接失败:messagefromserver:"Host'192.168.xx.xxx'isnotallowedtoconnecttothisMySQLserver"解决错误信息表明你尝试从IP地址192.168.xx.xxx连接到MySQL服务器,但是该IP地址没有被授权连接权限。为了解决这个问题,你需要确保你的MySQL用户权限......