关于 MySQL、PostgresSQL、Mariadb 数据库2038千年虫问题

news2024/11/25 14:22:59

MySQL

测试时间:2023-8

启动MySQL服务后,将系统时间调制2038年01月19日03时14分07秒之后的日期,发现MySQL服务自动停止。

根据最新的MySQL源码(mysql-8.1.0)分析,sql/sql_parse.cc中依然存在2038年千年虫问题

/*
      If the time has gone past end of epoch we need to shutdown the server. But
      there is possibility of getting invalid time value on some platforms.
      For example, gettimeofday() might return incorrect value on solaris
      platform. Hence validating the current time with 5 iterations before
      initiating the normal server shutdown process because of time getting
      past 2038.
*/
if (tries > max_tries) {
     /*
        If the time has got past epoch, we need to shut this server down.
        We do this by making sure every command is a shutdown and we
        have enough privileges to shut the server down

        TODO: remove this when we have full 64 bit my_time_t support
      */
     LogErr(ERROR_LEVEL, ER_UNSUPPORTED_DATE);
     const ulong master_access = thd->security_context()->master_access();
     thd->security_context()->set_master_access(master_access | SHUTDOWN_ACL);
     error = true;
     kill_mysql();
 }

TODO: remove this when we have full 64 bit my_time_t support:表示直到MySQL完成支持64位时间戳时才移除这个限制

PostgreSQL

测试时间:2023-8

测试版本:psql-10.1、psql-15.4

启动postgresql服务后,将系统时间调制2038年01月19日03时14分07秒之后的日期,psql-15.4版服务正常运行,数据库可以正常读写;但是重启服务postgresql失败(也就是说postgresql在2038年后无法正常启动)。psql-10.1服务直接挂掉,不能使用。

日志分析:

在这里插入图片描述
在这里插入图片描述

从日志上可以看出,调整时间后,重启postgresql,日志中的记录时间有问题;启动过程中一直报“D:/PostgresSQL/15/share/timezone”目录不存在,这个问题可能是postgresql获取时区出了问题(有可能是系统的问题)。

Mariadb

测试时间:2023-8

测试版本:10.8.8,11.1.2-GA(测试日期的最新版)

现象与PostgreSQL类似,调整时间后能正常读写,但是不能重启。(未分析日志)

从Mariadb的官网上,可以查到旧版计划(5.6版本)中就有用关于解决2038年千年虫问题的计划;好像未彻底实时(Mariadb不存在5.6版本)。

总结

距离下一次千年虫还有15年的时间,但愿MySQL能修复这个问题;不过按照Oracle的德性,不排除到了2038年停止MySQL社区版的维护,强制用户升级到企业版(大赚一笔)。

Mariadb、PostgreSQL 未来几年修复千年虫问题的可能性还是比较大的(毕竟已经修复了一部分),我们尽请期待吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mongodb 分片集群部署

文章目录 mongodb 分片部署二进制安装三台config 配置shard 分片安装shard1 安装shard2 安装shard3 安装mongos 安装数据库、集合启用分片创建集群认证文件创建集群用户部署常见问题 mongodb 分片部署 二进制安装 mkdir -p /data/mongodb tar xvf mongodb-linux-x86_64-rhel7…

mac软件安装后打开软件显示损坏

#mac传输安装包后安装后打开软件显示损坏处理方式 以postman为例,输入前面的代码,打开访达,把有问题的软件拉到命令行窗口,确认即可 sudo xattr -r -d com.apple.quarantine /Applications/Postman.app

基于飞腾芯片的设计与调试入门指导

一、啥是自主可控 国产CPU现在厂家细算起来其实有很多,现在华为、小米也在做自己的CPU,瑞芯微、全志等的SoC现在也是广泛应用。但是真正能叫做自主可控的CPU厂商,只有6家。那啥是自主可控?首先来不严谨的讲下现在数字芯片是怎么做的设计。FPGA大家都知道,可以通过Verilog…

XP Power电源模块替代 HVF124000D-10W HVF15A6000D-10W 直流升压高压单路双路输出升压模块

F Features 最低工作电压:0.7V电压隔离:1000VDC /3000VDC 平均无故障时间: > 800,000 小时短路与电弧保护无最低负载要求:可空载工作输入电压:5、12、15、24VDCOutput 100,200、300、400、500 、600、800、 1000…

问道管理 :现金流若充裕 回购应是常态

许多闻名企业家将是否具有富余的现金流,置于企业运营风险的首位。看上去巨大的公司由于现金流开裂而轰然坍毁,已层出不穷。而富余的现金流是用于运营回购、股票分红还是理财出资,表现着公司对行业前景和估值水平的判别。 现金流富余的公司&am…

无套路,财务数据分析-多组织损益表分析分享

在报表众多的财务数据分析中,损益表是老板们最关注的报表,特别是当有多组织时,损益表的分析就变得更加重要了。以前受限于数据分析工具,做损益表分析时很难做到多维度灵活分析,但随着BI数据可视化工具的发展&#xff0…

【力扣 第 360 场周赛】题解(一题待补)

目录 2833. 距离原点最远的点2834. 找出美丽数组的最小和2835. 使子序列的和等于目标的最少操作次数TODO 2836. 在传球游戏中最大化函数值 这场比赛排名第 1 - 1000 名的参赛者 可获「NIO 蔚来」简历内推机会,比有的场次前十才给容易多了。 2833. 距离原点最远的点…

python下又一款漂亮超炫酷的动态数据可视化工具——可动态交互

python下有很多漂亮的数据可视化库,例如 Matplotlib、Seaborn、Bokeh、Plotly、Pyecharts等等,我们直接使用这些第三方库来进行漂亮的数据可视化操作。虽然这些库都可以很好的展示数据,但是在实现动态可交互上,很多库并不支持动态…

ssm公司信息管理系统源码和论文

ssm公司信息管理系统源码和论文071 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳…

LInux之chrony服务器

目录 场景 重要性 LInux的两个时钟 硬件时钟 系统时钟 NTP协议 Chrony介绍 定义 组成 --- chronyd和chronyc 安装与配置 安装 Chrony配置文件分析 同步时间服务器 chronyc命令 chronyc sources输出分析 其它命令 查看时间服务器的状态 查看时间服务器是否在线 …

OpenCV为老照片,黑白照片增加色彩

Colorful Image Colorization 图片的颜色上色,主要使用到了CNN卷积神经网络,作者在ImageNet数据集上进行了大量的训练,并将此问题使用在分类任务中,以解决问题的潜在的不确定性,并在训练时使用颜色重新平衡的损失函数方…

气传导耳机哪个品牌好?推荐几款非常不错的气传导耳机

​气传导耳机能够提供高品质的音效,同时保持耳道的开放,让你在享受音乐的同时保持对外界的感知,户外使用安全性更高。还有很多人对气传导耳机不了解的,以下是我们为大家推荐的四款气传导耳机,仅供大家参考。 NO1&…

【2023最新版】R安装(直接+Anaconda)及使用(Pycharm配置R)教程

目录 一、R语言 1. R官网 2. R介绍 二、直接安装R 1. 下载 2. 安装 三、Pycharm使用R 1. 安装Pycharm 2. R Language for IntelliJ插件 3. R设置 报错 4. R软件包 安装 加载 查看已安装的包 四、使用Anaconda创建R语言虚拟环境 1. 安装Anaconda 2. 创建R语言…

9 款值得您花钱的最佳 PDF 编辑器

PDF 格式在 90 年代初一推出就开始流行。PDF 文件便于携带、易于共享、阅读有趣,但难以编辑。有什么不喜欢的呢?与其他格式相比,无论大小的企业都更喜欢 PDF,因为他们不喜欢其他人篡改他们的文档。 无论是指南、职业道德还是展示…

2023年05月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天&#xff…

element——switch接口成功后赋值打开开关

应用场景 基本用法使用v-model双向绑定值,进行开关控制 例子1:需求: **点击switch,出弹窗,点击弹窗保存按钮调接口成功后再赋值(row.orderButtonValue“1”)打开switch开的状态变颜色。 在vue 中使用 :va…

【openEuler创新项目探索】一个Java端的向量化BLAS库VectorBLAS

VectorBLAS简介 VectorBLAS是一个使用Java语言实现的向量化BLAS高性能库,目前已在openEuler社区开源。 VectorBLAS通过循环展开、矩阵分块和内存布局优化等算法优化,对BLAS函数进行了深度优化,并利用VectorAPI JDK提供的多种向量化API实现。…

快速学习ES6新特性Promise之实例代码

&#xff08;一&#xff09;首先用setTimeout模拟一个异步请求&#xff0c;然后封装成一个new Promise <script type"text/javascript">function createAudioFileAsync() {console.log(调用返回数据前);let newPromise new Promise((resolve, reject) > {…

电子邮件营销模板怎么写?如何做营销邮件?怎么设计EDM邮件模板?

推荐的电子邮件营销模板有哪些&#xff1f; 电子邮件营销模板是现代营销策略中的重要组成部分。通过精心设计的邮件模板&#xff0c;您可以有效地吸引客户&#xff0c;传达信息&#xff0c;并提高销售率。在本文中&#xff0c;我们将介绍如何撰写出色的电子邮件营销模板&#x…

猫头虎博主赠书一期:《Kubernetes原生微服务开发》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…