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

根据支持 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 版本(译)的更多相关文章
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 如何配置远程mysql服务器
如何配置远程mysql服务器 分配用户权限 可以先看一下目前的用户权限状况: use mysql; select host,user,password from user; 然后分配新的权限给某一用户 ...
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- mysql服务器和配置优化
一.存储引擎 mysql中有多种存储引擎,一般常见的有三种: MyIsam InnoDB Memory 用途 快读 完整的事务支持 内存数据 锁 全表锁定 多种隔离级别的行锁 全表锁定 持久性 基 ...
- 远程连接mysql数据库时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111)
在测试服务器上安装完mysql后, 服务器自己访问没有问题, 但是本地通过sql客户端连接时报错: 错误代码 2003不能连接到MySQL服务器在*.*.*.*(111).在网上查了一些资料,解决方案 ...
- 登录phpmyadmin提示: #1045 无法登录 MySQL 服务器
打开phpmyadmin,进行登录,出现以下问题,提示:#1045 无法登录 MySQL 服务器 或许出现以下错误情况:phpmyadmin:#1045 无法登录 MySQL 服务器.Access d ...
- 如何将自己的windows设置为mysql服务器
1.安装mysql 服务器 2.创建超级用户,即 用户管理 mysql>use mysql; 查看 mysql> select host,user,password from user ; ...
- 一台MySQL服务器启动多个端口
一台MySQL服务器启动多个端口 在测试Mysql多主一从服务器,即一个从服务器多端口同步不同主库.本文记录了开启不同端口的操作. 详细步骤: 1.首先要先把my.cnf配置文件复制一份,开几个端口要 ...
- 详解 Spotlight on MySQL监控MySQL服务器
前一章详解了Spotlight on Unix 监控Linux服务器 ,今天再来看看Spotlight on MySQL怎么监控MySQL服务器. 注:http://www.cnblogs.com/J ...
- 1104关于优化mysql服务器几个参数和思路
转自http://www.cnblogs.com/AloneSword/p/3207697.html 按照从大到小,从主要到次要的形式,分析 mysql 性能优化点,达到最终优化的效果. 利用 min ...
随机推荐
- MarginNote 4 内存泄露?
在床上用电脑的时候突然发现电脑风扇呼呼响,一摸很烫,以为是被子把出风口堵住了,于是调整角度继续用.结果一段时间之后风扇还是狂转不停,然后收到了这样的提示.不看不知道一看吓一跳,MarginNote 4 ...
- 检测 NAT 类型
使用 pystun3 pystun3 是一个用于获取 NAT 类型和外部 IP 的 Python STUN 客户端 安装: pip install pystun3 使用: pystun3 结果: NA ...
- 公有云-实验一 实践腾讯云部署Web应用
实验一 实践腾讯云部署Web应用 概述 企业A需要搭建一套在互联网上发布的论坛平台,但是企业内部并没有完善的基础架构设施,难以保证论坛平台的高可用性和高安全性.经过IT部门相关专家分析讨论,决定在腾讯 ...
- 常回家看看之house_of_kiwi
house of kiwi 前言:house_of_kiwi 一般是通过触发__malloc_assert来刷新IO流,最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到fla ...
- java 线程、进程及相关知识点 《笔记一》
一.线程.进程 线程,就是是进程的一个单位,程序最小执行单位. 进程,就是一个执行中的应用程序:由此可见,进程是由很多线程组成的: 线程生命周期,就是管杀也管埋的过程,生老病死: 线程的5个状态: 新 ...
- RabbitMQ——死信队列介绍和应用
死信和死信队列的概念 什么是死信?简单来说就是无法被消费和处理的消息.一般生产者将消息投递到broker或者queue,消费者直接从中取出消息进行消费.但有时因为某些原因导致消息不能被消费,导致消息积 ...
- Python条件语句 if
语法: 示例: if elif else:
- Kubernetes Pod生命周期(十七)
前面我们已经了解了 Pod 的设计原理,接下来我们来了解下 Pod 的生命周期.下图展示了一个 Pod 的完整生命周期过程,其中包含 Init Container.Pod Hook.健康检查 三个主要 ...
- eBPF 概述:第 4 部分:在嵌入式系统运行
1. 前言 在本系列的第 1 部分和第 2 部分,我们介绍了 eBPF 虚拟机内部工作原理,在第 3 部分我们研究了基于底层虚拟机机制之上开发和使用 eBPF 程序的主流方式. 在这一部分中,我们将从 ...
- 墨天轮国产数据库沙龙 | 张晓庆:GoldenDB分布式数据库的自动安装与备份恢复
在共同推进国产化生态发展的进程下,墨天轮正式推出"墨天轮国产数据库沙龙"系列直播活动,将定期邀请各国产数据库产品专家.掌门人,共同探讨如何达成技术"自主可控"的 ...