MySQL 开源到商业化(三):霸道总裁抢夺 MySQL

前文提到,开源数据库 MySQL 之父 Monty 接受了 Sun 公司的收购要约,将自己创立的 MySQL AB 卖给了 Sun,从此名利双收。而作为员工的 Monty 也与 Percona 负责人 Peter、Drizzle 发起人 Brian 一起推动着 MySQL 社区的健康发展。然而 Monty 的想法并没有得到 Sun 公司的全力支持,更加开放的 MySQL 联合开发模式始终没有真正实现。火上浇油的是,Sun 公司还要求 Monty 提前发布并不稳定的 MySQL 5.1 版本,这让 Monty 怀疑起了 Sun 管理层的技术判断力。虽然经过一番挣扎 MySQL 5.1 还是以比较稳定的版本发布了,但是 Monty 和 Sun 管理层之间的裂痕已经不可弥补。无奈之下,Monty 宣布自己与 Sun 公司和平分手,并将成立“家庭式氛围”的新公司 Monty Program Ab,持续推动 MySQL 开源事业。

然而 Monty 并没有预料到,金玉其外的 Sun 公司此时已经深陷财务危机。如果没有大笔的资金注入,Sun 公司的运营将难以为继。在这个关键时刻,Monty 的假想敌 Larry Ellison 为 Sun 提供了一个解决方案,即“Oracle 收购 Sun”。注意,Sun 作为一个破落贵族,在 2008 年 1 月前后收购了 MySQL AB,而 Oracle 公开宣布收购要约则发生在 2009 年 4 月之前。在这两个时间点之间,Sun 管理层最重要的任务就是抱紧 Oracle,让公司能够活下去。

Larry Ellison 对 MySQL 的态度我们不得而知,但是 Monty 打心底认为 Oracle 收购了 Sun 之后会对 MySQL 下黑手。在得知收购提案得到了美国政府的同意后,Monty 在 MySQL 社区发起了请愿活动,试图影响欧盟委员会来阻碍收购事宜。在请愿书里面,Monty 向社区强调了 MySQL 与 Oracle 在数据库方面的竞争关系,试图营造一种“霸道总裁强抢民女”的氛围(MySQL 里面的“My”是 Monty 女儿的名字)。考虑到了吃瓜群众不一定愿意写邮件,Monty 还为他们提供了邮件模版,只要复制粘贴就能发送。以下是 Monty 的原文:

我,Michael “Monty” Widenius, MySQL 的创建者,紧急请求你们帮助 MySQL 逃离 Oracle 的魔掌。如果您不立即伸出援手, Oracle 随时都有可能拥有 MySQL。通过写信给欧盟委员会(EC),您可以支持这项事业,并帮助确保 MySQL 产品作为开源项目的未来发展。

本文的内容:

  • 事件概述
  • Oracle 未承诺的内容
  • Oracle 公司过去在开源方面的行为
  • 帮助传播此信息(跳转到 “我想请您做什么”)
  • 向委员会发送电子邮件的示例(跳转到 “发送到:”)

在过去的 27 年中,我一直在创建和开发 MySQL,我希望与我的 MySQL 核心开发团队一起,为 MySQL 工作更多的时间。

Oracle 正试图收购 Sun,由于 Sun 去年收购了 MySQL,因此 Oracle 将拥有 MySQL。有了你们的支持,欧盟委员会(Oracle 公司需要获得欧盟委员会的批准)很有可能阻止这种情况的发生,或者要求 Oracle 公司修改 MySQL 的条款,或者向用户提供其他保证。如果没有你们的支持,可能就不会发生。欧共体是我们现在最后的希望,因为美国政府已经批准了这项交易,而欧洲还在担心其影响。

Oracle 公司没有与欧盟委员会一起解决这个问题,并商定适当的补救措施来纠正这种情况,而是联系了数百家大客户,请他们致函欧盟委员会,要求无条件接受这项交易。据我所知,Oracle 公司已向客户承诺,“在 MySQL 的开发上,他们将投入比 Sun 更多的资金”,而且 “如果他们放弃 MySQL,将会出现一个分叉来解决这个问题”。

然而,仅仅在开发上投入资金并不能保证有用的东西会出现,也不能证明 MySQL 会像现在这样继续在市场上保持竞争力。

正如我之前在博客中提到的,如果 Oracle 公司作为 MySQL 的版权持有者,在任何时候都决定杀死 MySQL 或将 MySQL 的部分内容封闭源代码,那么分叉并不足以让 MySQL 在未来继续生存下去。

Oracle 公司声称会妥善管理 MySQL,但让我们面对现实吧: 与十年前不同的是,当时 MySQL 主要用于万维网,而现在它已经变得非常实用、可扩展且可信。现在,世界上许多大公司都在使用 MySQL,而且使用的目的越来越多。这不仅让 Oracle 公司感到恐惧,而且实际上每天都在伤害 Oracle 公司。当公司启动新项目时,Oracle 公司不得不持续降低价格与 MySQL 竞争。有些公司甚至将现有项目从 Oracle 迁移到 MySQL 以节省开支。当然,Oracle 有更多的功能,但 MySQL 已经可以做很多 Oracle 常用的事情,并帮助人们节省了很多钱。随着时间的推移, MySQL 对 Oracle 的影响就像当初被轻视的 Linux 对商业 Unix 的影响一样(大致如此)。

因此,我不相信 Oracle 会成为 MySQL 的好归宿。对于 Oracle 公司来说,弱小的 MySQL 每年价值约 10 亿美元,甚至更多。一个强大的 MySQL 不可能为 Oracle 带来足够的收入,以至于他们想蚕食自己真正的摇钱树。我不认为有任何公司做过这样的事情。这就是欧盟委员会持怀疑态度并在一个月前正式提出反对意见的原因。

Richard Stallman 也认为 MySQL 的所有者是哪家公司非常重要, Oracle 公司不应该被允许以目前的条件收购它,而且它不能仅仅由一个志愿者社区来管理。http://keionline.org/ec-MySQL

Oracle 公司没有做出任何承诺(据我所知,当然也不具有法律约束力):

  • 将(所有) MySQL 保持在开源许可下
  • 不添加闭源部分、模块或所需工具
  • 保持 MySQL 企业版和 MySQL 社区版的代码相同。
  • 不提高 MySQL 许可证或 MySQL 支持价格。
  • 定期、及时地发布新的 MySQL 版本(*)
  • 继续使用双重许可,并始终向有需要的用户(存储供应商和应用程序供应商)提供价格合理的 MySQL 商业许可,或以更宽松的许可提供 MySQL。
  • 将 MySQL 作为开源项目进行开发
  • 积极与社区合作
  • 及时应用提交的补丁
  • 不歧视使 MySQL 与Oracle其他产品竞争更激烈的补丁程序
  • 改进 MySQL,确保它能与 Oracle 公司的主要产品形成更大的竞争

从 Oracle 处理 InnoDB 收购案的方式来看,如果不要求 Oracle 做到以上几点,我不会对 Oracle 寄予厚望:

对于 InnoDB:

  • 进行了 bug 修复(但这是根据合同义务进行的)
  • 新功能,如收购前宣布的压缩功能,花了 3 年时间才实现
  • 没有时间表,也不了解开发情况
  • 不允许社区参与开发
  • 直到 Oracle 宣布收购 Sun 后,用户(如 Google)提出高性能补丁才得以实施/发布。
  • Oracle 开始开发 InnoDB+,一个更好的、“闭源”的 InnoDB 版本。
  • 为了提高性能,最终 Sun 不得不分叉 InnoDB。

的确,开发工作仍在继续,但这更多是为了能够继续使用 InnoDB 作为 MySQL Ab 的压力。

请注意, Oracle 在 Linux 内核上的贡献与 MySQL 无法相提并论,因为:

  • Oracle 将 Linux 作为其主要数据库产品的主要平台(因此,更好的 Linux 会使 Oracle 平台变得更好)
  • 内核中的 GPL 代码不会影响上面运行的内容(因为 Linux 的特殊性)。

因为我们无法获得 MySQL 的客户和用户列表,所以我们只能利用 MySQL 开源社区来传播消息。如果 Oracle 公司没有违反反竞争兼并案的既定规则,在反对声明发布后积极动员客户去影响欧盟委员会,我是绝不会采取这种做法的。

尽快采取行动至关重要,因为欧盟委员会需要根据 Oracle 公司的行动在 2010-01-05 日前后做出决定。由于截止日期很紧,每封邮件都很重要!

我想请您做的是:

  • 将此电子邮件/信息转发给您知道的所有使用 MySQL 或开源/自由软件的人,以及所有您知道有人使用或关心 MySQL 和开源软件的电子邮件列表(请先检查此电子邮件之前是否被发送过)
  • 或者发送包含相关信息的电子邮件,告诉他们阅读 http://monty-says.blogspot.com/2009/12/help-saving-MySQL.html
  • 在接下来的两周内,在您的网站上添加 http://monty-says.blogspot.com/2009/12/help-saving-MySQL.html 的链接,并注明 “我们正在使用 MySQL,请帮助拯救它”
  • 在博客上发布相关信息(可随意添加此文本或直接链接到我的博客)
  • 给你的老板或副总裁打电话(不要用电子邮件,这很紧急),请他阅读这封邮件,并尽快给欧共体委员会发一封信!
  • 如果您没有上述联系人,请向选委会发送电子邮件!

由于我们希望执委会能够正确了解情况,我们希望您首先填写上半部分,然后从下面的建议文本中选择一个最符合您对情况看法的文本。如果您认为这有助于委员会更好地了解 MySQL 的使用情况,请随时提供您自己的文本和补充信息。

请发送至: comp-merger-registry@ec.europa.eu

如果您想让我们了解最新情况,请将副本发送至 ec@askmonty.org

如果您有额外的时间,请填写以下内容;如果没有,请跳至正文。

姓名:

头衔:

公司:

公司规模:

安装了多少个 MySQL:

MySQL 中存储的数据总量(兆字节):

用于何种应用:

此电子邮件是否应由欧盟委员会保密:是/否

复制或使用以下文本之一作为你的答案的基础:

a) 我不相信 Oracle 公司会妥善管理 MySQL,MySQL 应该剥离给另一家公司或基金会,因为它们可以通过开发和推广 MySQL 获得一切好处。将来,人们还应该能够将 MySQL 与封闭源代码应用程序结合起来(通过例外情况、更宽松的许可证或以优惠条件获得 MySQL 的双重许可证)。

b) 我认为 Oracle 公司可以成为 MySQL 的好管家,但我需要欧共体从 Oracle 公司获得具有法律约束力的保证:

  • 所有 MySQL 将在未来继续是完全开源/自由软件(没有封闭源代码模块)。
  • 开源版本和双许可证版本的 MySQL 应具有相同的源代码(就像现在一样)。
  • 开发工作将以社区友好的方式进行。
  • 手册应在许可协议下发布(这样人们就可以对其进行分叉,就像人们可以对服务器进行分叉一样)
  • 如果 Oracle 公司终究不是一个好管家, MySQL 应在更宽松的许可证下发布,以确保 fork 可以真正与 Oracle 公司竞争。
    另外:
  • 人们应该可以随时购买低价的 MySQL 商业许可证。
  • 上述所有许可都应是永久性和不可撤销的。

还应该有一种机制,如果 Oracle 公司没有按预期行事,那么分叉程序应该能够与 Oracle 公司竞争。

c) 我相信 Oracle 公司,我建议欧盟委员会无条件批准这项交易。


让我们向 Oracle 和欧盟委员会证明,开源社区是一股真正的力量,我们会照顾好我们的公民,我们也更愿意与这样的公司合作!

MySQL 的未来掌握在你们手中!

感谢您的帮助!

迈克尔-维登纽斯

MySQL 创建者

从 Oracle 官方消息看,Larry Ellison 最想获得的是 Java 编程语言和 Solaris 操作系统。Oracle 原本在应用软件方面就有深厚的积累,加上 Sun 的技术后就能成为“独家提供从应用到磁盘整体解决方案”的供应商。字面上看,Oracle 对 MySQL 的知识产权也并非志在必得。如果让 MySQL 成为 Oracle 收购 Sun 的绊脚石,是否能够迫使 Oracle 承诺保持 MySQL 的开放性,或者让快饿死的 Sun 提前剥离 MySQL 以促成交易?

Monty 在请愿书里面写的要求有些过分,比如要求 Oracle 保证“MySQL 代码完全开源”、“企业版保持低价且不能涨价”、“承诺永远有效不可撤回”等。Monty 深谙讨价还价的原则,只有将 MySQL 变得又臭又硬难以下咽,Oracle 和 Sun 才会低下头来认真讨论 MySQL 的处理方式。

Monty 在发起了请愿活动之后,也不得不公开回应了一些质疑。我们能够从中看到欧美人思维的多样性和思辨能力。

  • 政府干预自由经济

    有匿名群众批评了 Monty 试图通过欧盟来干预自由市场,紧接着就开始为更“自由”的 PostgreSQL、SQLite 带货。也有另外的匿名群众表示自由市场是无稽之谈,学过经济的人应该认可政府干预的必要性,如果没有政府干预就会发生经济危机。Monty 为自己辩解说,是因为 Oracle 起了头去影响欧盟,才迫使自己有样学样。

  • 开源项目的知识产权交易

    很多人质疑了“开源项目”为什么可以进行交易。MySQL 社区的高手层出不穷,出于爱好也免费提交了不少代码。如果说 MySQL 的成就是开源爱好者们一起努力实现的,那为什么 MySQL 能够被轻易卖给 Sun,最后沦为 Oracle 的收购标的,甚至存在被“杀死”的可能?

很多人批评 Monty 将 MySQL AB 卖给了 Sun,现在又跳出来对 Oracle 提各种要求。Monty 则无辜地表示,MySQL AB 被卖给 Sun 这事他没机会阻止(但是现在有机会阻止 Oracle)。Redis 的作者 Antirez 从头看到尾后表示:“GPL 是一个错误,但让 MySQL 赚到了钱”。十年之后,他自己遇到同样抉择的时候坚定选择了钞票,不过这就是后话了,略去不表。

为了达成交易,Oracle 很快给出了 10 项承诺:

“为了让欧盟委员会更放心,Oracle 公司在此公开承诺如下:”

  1. 存储引擎 API 的持续可用性。Oracle 将维护并定期增强 MySQL 的可插拔存储引擎架构,使用户能够灵活地从本机和第三方提供的存储引擎组合中进行选择。“MySQL 的可插拔存储引擎架构”指的是 MySQL 当前使用的、公开的、被文档记录的应用程序编程接口,该架构允许存储引擎供应商 "插入"到 MySQL 数据库服务端。文档应与 Sun 目前提供的文档一致。

  2. 不主张。作为版权持有者,Oracle 将改变 Sun 的现行政策,不主张或威胁主张第三方厂商的存储引擎实现必须以 GPL 发布,因为它们已经实现了 MySQL 可插拔存储引擎体系结构的部分应用程序编程接口。
    Oracle 将不要求第三方存储引擎供应商提供商业许可,以便实施作为 MySQL 可插拔存储引擎架构的部分应用程序编程接口。

Oracle 将在对目前与 Sun 签订了商业许可的存储厂商的合同中承诺重申这一承诺。

  1. 许可承诺。在当前的 MySQL OEM 协议终止后,Oracle 应向目前拥有 Sun 商业许可的存储厂商提供延期协议,延期的条款和条件不变,期限不超过 2014 年 12 月 10 日。

Oracle 将在对目前与 Sun 签订了商业许可的存储厂商的合同中承诺重申这一承诺。

  1. 承诺将在 GPL 下增强 MySQL。Oracle 将继续增强 MySQL,并在 GPL 下提供 MySQL 的后续版本,包括第 6 版。Oracle 在发布任何新的增强版 MySQL 企业版的同时,需要发布 GPL 许可的增强版 MySQL 社区版。Oracle 将继续免费公开 MySQL 社区版的所有代码。

  2. 支持不是强制性的。客户无需购买 Oracle 的支持服务,也可以获得 MySQL 商业许可。

  3. 增加 MySQL 研发支出。Oracle 公司承诺为 MySQL 的持续开发(GPL 版本和商业版本)提供适当的资金。在未来三年中的每一年,Oracle 用于 MySQL 全球业务部门的研发(R&D)支出将超过 Sun 在交易完成前最近一个财政年度的支出(2400万美元)。

  4. MySQL 客户咨询委员会。不迟于交易完成周年后的六个月,Oracle 将创建一个客户咨询委员会并为其提供资金,其中特别包括最终用户和嵌入式客户,以便就 MySQL 开发的优先事项以及对 MySQL 客户具有重要意义的其它问题提供指导和反馈。

  5. MySQL 存储引擎供应商咨询委员会。不迟于交易完成周年后的六个月,Oracle 将创建存储引擎供应商咨询委员会并为其提供资金,以便就 MySQL 开发的优先事项以及对 MySQL 存储引擎供应商具有重要意义的其他问题提供指导和反馈。

  6. MySQL 用户手册。Oracle 将继续维护、更新并免费提供与 Sun 目前提供的手册质量类似的 MySQL 用户手册。

  7. 保留客户对支持的选择权。Oracle 将确保支付 MySQL 支持订阅费用的最终用户和嵌入式客户,能够按照自己的偏好每年续费或者多年一次性续费。

这些承诺的地理范围将遍及全球,这些承诺将持续到交易完成五周年。

Oracle 明白打蛇打七寸的道理,与其解决 Monty 提出来的“问题”,不如解决向欧盟委员会提出问题的“人”,也就是 MySQL 的用户、客户以及供应商。Oracle 提出的 10 项承诺保证用户和客户将在 5 年内以同样的方式使用 MySQL 各种版本(包括新版本),同时也给了上游的引擎开发商以及下游的应用开发商相同的合作条款保障。值得注意的是,Oracle 既不承诺开放的社区开发协作模式,也没有理会持续低价的要求。更重要的一点是,Oracle 只是通过媒体宣布了这些承诺,而这些承诺并不一定会写在 Sun 的交易合同里面。Monty 从企业侧得到的支持力度被 Oracle 大大削弱了,只能在承诺的时效性和有效性方面继续进行无力的反抗。他还尝试从互联网使用免费开源的 LAMP 架构角度,阐述永久开源的 MySQL 对中小企业的意义,但是 Oracle 的法务团队实在是太强了,Oracle 还是在 2010 年 1 月得到了欧盟委员会的同意,完成了对 Sun 公司的收购,顺带获得了 MySQL 的知识产权。

一个有趣的地方在于,Monty 在整个请愿事件里面都在假定霸道总裁强抢民女。那有没有存在这样一种可能,Oracle 在完成收购后会采取善待 MySQL 的措施呢?如果是的话,Monty 和他创建的新公司又该如何自处?

后面发生了什么?请关注:MySQL 开源到商业(四):鸡肋和烫手山芋

引用来源:

https://www.oracle.com/corporate/pressrelease/oracle-buys-sun-042009.html

https://www.darkreading.com/cyber-risk/oracle-makes-10-commitments-to-seal-eu-deal

End

KubeBlocks 已发布 v0.8.0(KubeBlocks v0.8.0 发布!Component API 让数据库引擎组装更简单!)!KubeBlocks v0.8.0 推出了 Component API,让数据库引擎的组装变得更加简单。Addon 机制也有了重大改进,数据库引擎的 helm chart 从 KubeBlocks repo 中拆分出去,从此数据库引擎或者版本的变动已与 KubeBlocks 发版解绑。v0.8.0 还支持多版本的数据库引擎定义。Pika、ClickHouse、OceanBase、MySQL、PostgreSQL、Redis 等均有功能更新,快来试试看!

小猿姐诚邀各位体验 KubeBlocks,也欢迎您成为产品的使用者和项目的贡献者。跟我们一起构建云原生数据基础设施吧!

💻 官网: www.kubeblocks.io

🌟 GitHub: https://github.com/apecloud/kubeblocks

🚀 Get started: https://kubeblocks.io/docs/preview/user_docs/try-out-on-playground/try-kubeblocks-on-your-laptop

关注小猿姐,一起学习更多云原生技术干货。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spark持久化、broadcast广播变量和accumulator累加器

持久化操作 什么是持久化,为什么要持久化 Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当您持久化RDD时,每个节点将其计算的任何分区存储在内存中,并在该数据集(或从该数据集派生的数…

AI大模型日报#0429:人大多模态Awaker1.0、清华「AI+材料」落地、微软小模型Orca-Math、GenAI黄金法则

导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了今日要点以及每条资讯的摘要。AI大模型日报今日要点: 中山大学与重庆大学合作开发的基于Transformer的单细胞注释方法SANGO在跨样本、平台和组织…

平安城市 校园 景区 停车场网络语音对讲立柱SV-11TS

平安城市 校园 景区 停车场网络语音对讲立柱SV-11TS 长方形立柱式设计,外观简约,线条优美,工艺考究,坚固耐用可一键实现在紧急情况下求助报警、事件咨询,与SIP网络对讲主机进行全双工对讲。内置警示灯,呼叫…

接口自动化框架篇:使用python连接数据库 - PySQL介绍!

PySQL介绍:使用Python连接数据库的接口自动化框架 在接口自动化测试中,经常需要使用数据库来操作测试数据,验证接口返回的数据是否正确。Python是一种功能强大的编程语言,可以轻松地连接数据库,并进行各种数据库操作。…

保证接口幂等性(token机制)

现在继续讲一讲保证接口的幂等性——使用token机制,并编写代码实现! 1. 概念 Token机制是实现接口幂等性的一种常见策略,尤其是在处理如订单创建、支付确认等敏感操作时,确保即使用户因网络延迟、误操作等原因重复提交请求&#…

【TDengine】mac m1解决no taos in java.library.path

前言 使用macos搭建springbootmybatisplus,通过mqtt将数据更新到tdenigne 3.2.3,数据源使用远程服务器的tdengine。 问题 启动时报错: Caused by: java.lang.UnsatisfiedLinkError: no taos in java.library.path 以下是官方文档 打开本…

动手学深度学习——矩阵

1. 基本概念 1.1 标量 标量由只有一个元素的张量表示。 所以标量计算与程度开发中的普通变量计算没有差异。 import torchx torch.tensor(3.0) y torch.tensor(2.0)x y, x * y, x / y, x**y(tensor(5.), tensor(6.), tensor(1.5000), tensor(9.))1.2 向量 向量泛化自标量…

Hbase学习笔记

Hbase是什么 HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统。它利用Hadoop HDFS作为其文件存储系统,并提供实时的读写的数据库系统。HBase的设计思想来源于Google的BigTable论文,是Apache的Hadoop项目的子项目。它适合于存储大表数据,并可以达到实时级别。HB…

部署YUM仓库及NFS共享服务

YUN仓库服务 YUM概述 基于RPM包构建的软件更新机制 可以自动解决依赖关系 所有软件包由YUM集中的软件仓库提供 yum软件仓库的常用类型 本地源仓库:baserulfile:// 在线源仓库:baserulhttp:// 或 https:// ftp源仓库:baserulftp:// RPM…

【Java那些事】关于前端收到后端返回的时间格式“2024-04-28T14:48:41“非想要的格式

问题: 后端操作后返回时间格式是"2024-04-28T14:48:41" 而我们想要的是:"2024-04-28 14:48:41", 两个解决方法: 方法一:使用 JsonFormat注解 Data AllArgsConstructor NoArgsConstructor public class Use…

代码随想录算法训练营第五十一天| LeetCode309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

一、LeetCode309.最佳买卖股票时机含冷冻期 题目链接/文章讲解/视频讲解:https://programmercarl.com/0309.%E6%9C%80%E4%BD%B3%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E6%97%B6%E6%9C%BA%E5%90%AB%E5%86%B7%E5%86%BB%E6%9C%9F.html 状态:已解决 1.思路 …

实验一: 设备密码配置与远程管理

1.实验环境 用路由器和交换机搭建实验环境 2.需求描述 实现管理员主机对交换机和路由器的远程管理 设备上配置的密码都要被加密 3.推荐步骤 对路由器配置的步骤如下: 实现路由器和PC的连通性配置VTY密码和特权模式密码在PC上Telnet 到路由器。 对交换机配置的…

03-JAVA设计模式-观察者模式

观察者模式 什么是观察者模式 Java中的观察者模式是一种常见的设计模式,它允许对象(观察者)订阅另一个对象(被观察者)的状态变化,并在状态变化时自动得到通知。 核心: 观察者模式主要用于1&a…

HTML学习笔记(二)

1.HTML图像 图像标签&#xff08;<img>)和源属性&#xff08;src&#xff09; HTML中&#xff0c;图像由<img>标签来定义&#xff0c;<img>是空标签&#xff0c;只包含属性&#xff0c;没有闭合标签。在页面上显示图像需要使用源属性&#xff08;src),src是指…

Docker基本操作 Linux里边操作

docker镜像操作命令: docker images:查看所有镜像; docker rmi:删除镜像 后边可以跟镜像的名字或者id指定要删除的镜像&#xff1b; docker pull:拉取镜像&#xff1b; docker push:推送镜像到服务&#xff1b; docker save :打包镜像 后边有用法; docker load:加载镜像&…

前端JS必用工具【js-tool-big-box】,字符串反转,驼峰转换以及版本号对比

这一小节&#xff0c;我们针对前端工具包&#xff08;npm&#xff09;js-tool-big-box的使用做一些讲解&#xff0c;主要是针对字符串反转&#xff0c;aa-bb-cc转驼峰&#xff0c;以及版本号对比的内容 目录 1 安装和引入 2 字符串反转 3 带有横岗的转驼峰 3.1 转小驼峰 3…

docker-compose编排集成工具,

一、引言 我们知道使用一个 Dockerfile 模板文件可以定义一个单独的应用容器&#xff0c;如果需要定义多个容器就需要服务编排。服务编排有很多种技术方案&#xff0c;今天给大家介绍 Docker 官方产品 Docker-Compose Dockerfile 可以定义一个单独的应用容器&#xff1…

linux,从零安装mysql 8.0.30 ,并且更新至mysql 8.0.36

前言&#xff1a; 系统使用的CentOS 7&#xff0c;系统默认最小安装。 一、基础配置 配置虚拟机IP&#xff0c;需要更改的内容&#xff0c;如下红框中 修改之后 至此&#xff0c;基础配置完成。注意&#xff1a;此处虚拟机网络适配器使用的是&#xff1a;桥接模式 二、软件…

【问题实操】银河麒麟高级服务器操作系统实例,CPU软锁报错触发宕机

1.服务器环境以及配置 处理器&#xff1a; Kunpeng 920 内存&#xff1a; 256G DDR4 整机类型/架构&#xff1a; TaiShan 200 (Model 2280) 内核版本 4.19.90-23.8.v2101.ky10.aarch64 2.问题现象描述 两台搭载麒麟v10 sp1的机器均在系统CPU软锁报错时&#xff0c;触…

Springboot+mybatis升级版(Postman测试)

一、项目结构 1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…
最新文章