【MySQL精通之路】MySQL8.0升级过程升级了什么

目录

1.升级内容

1.1 mysql系统库

1.2.其他库

2.步骤

2.1 步骤1:数据字典库升级。

2.2 步骤2:服务器升级。

3.mysql_upgrade

3.1 执行正常升级(根据需要执行步骤1和2):

3.2 必要时仅执行步骤1:

3.3 根据需要执行步骤1,并强制执行步骤2

3.4 注意事项


本文主要对现有版本数据库进行升级时升级的内容进行解释。开发人员可以跳过,更面向于DBA,

以下内容来自Mysql8.0官方文档。

安装新版本的MySQL可能需要升级现有安装的以下部分:

1.升级内容

1.1 mysql系统库

其中包含存储mysql服务器运行时所需信息的表(请参阅第7.3节“mysql系统架构”)。mysql模式表分为两大类:

-数据字典表,用于存储数据库对象元数据。

-系统库(即剩余的非数据字典表),用于其他操作目的。

1.2.其他库

其中一些是内置的,可能被视为服务器“拥有”,而另一些则不是:

-performance_schema、INFORMATION_SCHEMA、ndbinfo和sys库。

-用户表。

两个不同的版本成员与可能需要升级的安装部分相关联:

-数据字典版本。这适用于数据字典表。

-服务器版本,也称为MySQL版本。这适用于其他数据库实例中的系统表和对象。


在这两种情况下,适用于现有MySQL安装的实际版本都存储在数据字典中,并且当前预期版本被编译为MySQL的新版本。当实际版本低于当前预期版本时,与该版本相关联的安装部分必须升级到当前版本。如果两个版本都表示需要升级,则必须首先进行数据字典升级

作为刚才提到的两个不同版本的反映,升级分为两个步骤:

2.步骤

2.1 步骤1:数据字典库升级。

升级内容

-Mysql库中的数据字典表。如果实际的数据字典版本低于当前的预期版本,则服务器会创建具有更新定义的数据字典表,将持久化元数据复制到新表用新表原子替换旧表并重新初始化数据字典。

-performance_schema, INFORMATION_SCHEMA, ndbinfo

博主PS:就是说数据库自带的这两表的数据字典信息。

2.2 步骤2:服务器升级。

此步骤包括所有其他升级任务。如果现有MySQL安装的服务器版本低于新安装的MySQL版本,则必须升级其他所有内容:

-mysql库中的系统表(剩余的非数据字典表)。

-sys库。

-用户的库。

数据字典升级(步骤1)是服务器的责任,它在启动时根据需要执行此任务,除非使用阻止它执行此任务的选项进行调用。选项为--upgrade=NONE(自MySQL 8.0.16起),--no dd upgrade(自MySQL 8.0.16起)。
如果数据字典已过期,但服务器无法升级,则服务器不会运行,而是退出并返回错误。例如

[ERROR] [MY-013381] [Server] Server shutting down because upgrade is
required, yet prohibited by the command line option '--upgrade=NONE'.
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.

3.mysql_upgrade

MySQL 8.0.16中对步骤2的责任进行了一些更改:

在MySQL 8.0.16之前,mysql_upgrade 升级了Performance Schema、INFORMATION_SCHEMA和步骤2中描述的对象。DBA应该在启动服务器后手动调用mysql_upgrade。

从MySQL 8.0.16开始,服务器执行之前由MySQL_upgrade处理的所有任务。尽管升级仍然是一个两步操作,但服务器同时执行这两个操作,从而简化了过程

根据要升级到的MySQL版本,就地升级和逻辑升级中的说明指示服务器是否执行所有升级任务,或者在服务器启动后是否也必须调用mysql_upgrade。

注意:
由于服务器从MySQL 8.0.16开始升级Performance Schema, INFORMATION_SCHEMA和步骤2中描述的对象,因此mysql_upgrade是不需要的,并且从该版本开始不推荐使用;它也许在MySQL的未来版本中被删除。

3.1 mysql_upgrade

尽管可能需要不同的命令选项来实现特定的效果,但在MySQL 8.0.16之前和之后,步骤2期间发生的事情的大多数方面都是相同的。
从MySQL 8.0.16开始

--upgrade-server选项控制服务器是否以及如何在启动时执行自动升级:

如果为配置或配置--upgrade=AUTO:

服务器将升级它确定为过期的任何内容(步骤1和2)。

如果配置--upgrade=NONE:

则服务器不进行任何升级(跳过步骤1和2),但如果必须升级数据字典,则服务器也会退出并返回错误。使用过期的数据字典运行服务器是不可能的服务器坚持要么升级,要么退出

配置--upgrade=MINIMAL:

服务器将根据需要升级数据字典、Performance Schema和INFORMATION_SCHEMA(步骤1)。请注意,使用此选项进行升级后,无法启动组复制因为复制内部所依赖的系统表不会更新,而且在其他方面功能可能也会明显减少。

配置--upgrade=FORCE:

服务器将根据需要升级数据字典、Performance Schema和INFORMATION_SCHEMA(步骤1),并强制升级其他所有内容(步骤2)。由于服务器会检查所有模式中的所有对象,因此使用此选项预计服务器启动需要更长的时间

如果服务器认为不需要执行步骤2的操作,则FORCE可用于强制执行这些操作。FORCE与AUTO的一个不同之处在于,使用FORCE,服务器会重新创建系统表,如帮助表或时区表(如果丢失)

以下列表显示了MySQL 8.0.16之前的升级命令以及MySQL 8.0.16及更高版本的等效命令:

3.1 执行正常升级(根据需要执行步骤1和2):

MySQL 8.0.16之前:mysqld后面跟着mysql_upgrade
截至MySQL 8.0.16:mysqld


3.2 必要时仅执行步骤1:

在MySQL 8.0.16之前:不可能执行步骤1中描述的所有升级任务,同时排除步骤2中描述的任务。但是,您可以避免升级用户库和sys,使用mysqld,然后使用--upgrade-system-tables和----skip-sys-schema选项升级mysql_upgrade。

自MySQL 8.0.16起:mysqld--升级=MINIMAL

3.3 根据需要执行步骤1,并强制执行步骤2

MySQL 8.0.16之前:mysqld后跟mysql_upgrade --force


自MySQL 8.0.16起:mysqld--upgrade=FORCE

在MySQL 8.0.16之前,某些mysql_upgrade选项会影响它执行的操作。下表显示了从MySQL 8.0.16开始使用哪个服务器-升级选项值来实现类似的效果。(这些不一定是完全等效的,因为给定的--upgrade选项值可能会产生额外的影响。)

mysql_upgrade OptionServer Option
--skip-sys-schema--upgrade=NONE or --upgrade=MINIMAL
--upgrade-system-tables--upgrade=NONE or --upgrade=MINIMAL
--force--upgrade=FORCE

关于升级步骤2期间发生的情况的其他注意事项:

3.4 注意事项

步骤2 安装sys库(如果未安装),否则将升级到当前版本。如果sys库存在,但没有版本视图,则会发生错误,假设其不存在表示用户创建的库:

A sys schema exists with no sys.version view. If
you have a user created sys schema, this must be renamed for the
upgrade to succeed.

要在这种情况下升级,请先删除或重命名现有的sys库。然后再次执行升级过程。(可能需要强制执行步骤2。)
要防止sys库检查,请执行以下操作:

从MySQL 8.0.16开始:使用--upgrade=NONE或--upgrade=MINIMAL选项启动服务器。
在MySQL 8.0.16之前:调用mysql_upgrade使用--skip-sys schema选项。

步骤2 升级系统表以确保它们具有当前结构。无论服务器还是mysql_upgrade执行该步骤,都是如此。关于帮助表和时区表的内容,mysql_upgrade不加载任何一种类型的表,而服务器加载帮助表,但不加载时区表。(也就是说,在MySQL 8.0.16之前,服务器只在数据目录初始化时加载帮助表。从MySQL 8.0.16开始,它在初始化和升级时加载帮助表格。)加载时区表的过程取决于平台,需要DBA进行决策,因此无法自动完成。 

从MySQL 8.0.30开始,当步骤2升级MySQL模式中的sys库时,MySQL.db、MySQL.tables_priv、MySQL.columns_priv和MySQL.procs_priv表主键中的列顺序被更改为将主机名用户名列放在一起。将主机名和用户名放在一起意味着可以使用索引查找这提高了CREATE user、DROP user和RENAME user语句的性能,以及具有多个权限的多个用户的ACL检查的性能。删除并重新创建索引是必要的,如果系统具有大量用户和权限,则可能需要一些时间

要防止对表进行检查,请执行以下操作:

从MySQL 8.0.16开始:使用--upgrade=NONE或--upgrade=MINIMAL选项启动服务器。
在MySQL 8.0.16之前:使用--upgrade system tables选项调用mysql_upgrade。

要强制对表进行检查,请执行以下操作:

从MySQL 8.0.16开始:使用--upgrade=FORCE选项启动服务器。
在MySQL 8.0.16之前:使用--force选项调用mysql_upgrade。

步骤2 将MySQL版本号保存在数据目录中名为 mysql_upgrade_info的文件中。

要忽略mysql_upgrade_info文件并执行检查,请执行以下操作:

从MySQL 8.0.16开始:使用--upgrade=FORCE选项启动服务器。
在MySQL 8.0.16之前:使用--force选项调用mysql_upgrade。

笔记
mysql_upgrade_info文件已弃用;期望它在MySQL的未来版本中被删除。

步骤2 用当前MySQL版本号标记所有检查和修复的表。这样可以确保下次对相同版本的服务器进行升级检查时,可以确定是否需要再次检查或修复给定的表。

博主PS:本文主要在于升级现有的数据库。但实际生产环境对数据库版本的升级是很少见的,因此本文的知识点只作为真正需要升级数据库时的文档查阅。或面向专业DBA运维人员备忘查阅。对日常开发人员用处不大。

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

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

相关文章

LLMPerf-为LLM提供可重现的性能指标

LLMPerf-为LLM推理提供可复现的性能指标 翻译自文章:Reproducible Performance Metrics for LLM inference 结合之前的LLMPerf测试大模型API性能的文章进行查看,效果更佳。 1. 摘要 我们见过许多关于LLM性能的声明;然而,这些声明往…

Android面试题之Kotlin泛型和reified关键字

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 //泛型 class MagicBox<T>(item:T){var available falseprivate var subject:T itemfun fetch() : T? {return subject.takeIf { avai…

配置旁挂二层组网直接转发示例(命令行)

业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。 组网需求 AC组网方式&#xff1a;旁挂二层组网。DHCP部署方式&#xff1a; AC作为DHCP服务器为AP分配IP地址。汇聚交换机SwitchB作…

深度学习基础之《TensorFlow框架(18)—卷积神经网络(2)》

一、卷积层 1、卷积层&#xff08;Convolutional Layer&#xff09;介绍 卷积神经网络中每层卷积层由若干卷积单元&#xff08;卷积核&#xff09;组成&#xff0c;每个卷积单元的参数都是通过反向传播算法最佳化得到的 卷积运算的目的是特征提取&#xff0c;第一层卷积层可能…

Gradle和Maven项目解决Spring Boot Configuration Annotation Processor not configured警告

问题描述 写了一个配置类,加了注解@ConfigurationProperties(prefix = “xxx”) 后一直报警告:Spring Boot Configuration Annotation Processor not configured 意思是 Spring boot 未配置注解处理器 解决过程 出现这个问题后,百度查了解决方式 1.maven项目 maven项目是…

纯软件双机热备

在信息化高速发展的今天&#xff0c;企业对于业务连续性的需求愈发强烈。无论哪个行业&#xff0c;系统的稳定运行都至关重要。为了确保系统的高可用性和业务连续性&#xff0c;纯软件双机热备技术应运而生&#xff0c;成为了企业IT架构中的关键一环。 双机热备软件下载 …

cPanel中如何进行网站质量检测

最近我在维护网站的时候需要查看网站质量如何&#xff0c;我使用的是Hostease的主机安装的WordPress网站&#xff0c;随后在咨询了他们的技术支持后获得了方法。 当您在cPanel中部署了网站后&#xff0c;确保网站的质量和性能是至关重要的。cPanel提供了一个便捷的功能Site Qu…

Postman进阶功能-Mock服务与监控

大家好&#xff0c;前面跟大家分享一些关于 Postman 的进阶功能&#xff0c;当我们深入探索 Postman 的进阶功能时&#xff0c;Mock 服务与监控这两个重要方面便跃然眼前。 首先&#xff0c;Mock 服务为我们提供了一种灵活便捷的方式&#xff0c;让我们在某些实际接口尚未准备好…

18.SpringCloud Gateway

简介 SpringCloud Gateway是spingcloud家族的产品&#xff0c;使用netty实现的高性能服务网关&#xff0c;用于替换netflix公司的zuul网关实现。 参考地址&#xff1a; https://spring.io/projects/spring-cloud 术语 工作原理 Route Predicate Factories GatewayFilte…

新一代分布式链路追踪skywalking编码实战教程(下)

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

PostgresSQL开启归档模式

文章目录 一、查询数据库归档是否开启1、查看数据目录(找出conf文件位置)2、查看归档是否开启 二、开启归档模式&#xff08;开启后有一定的性能损耗&#xff09;1、创建归档目录2、修改postgresql.conf配置文件3、重启pg 三、验证归档情况1、查看归档是否开启2、检查点 , 刷新…

利用远控工具横向

一.横向移动介绍和方式 1.介绍 内网渗透的横向移动是指攻击者在成功进入内网后&#xff0c;通过利用内部系统的漏洞或者获取的合法访问权限&#xff0c;从一个受感染的系统向其他系统扩散或移动。这种横向移动的目的通常是为了获取更多的敏感信息、提升权限、扩大攻击面或者更…

【蓝桥杯】

题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<bits/stdc.h> using llunsigned long long; #define int ll const int N2e510; int k0; std::string s; int a,b,c,d; void solve() {char op;std::cin>>op;if(opA){std::string s;for(int i1;i&l…

文心一言指令解析

1、介绍 文心一言是一款灵感启发类的产品&#xff0c;它以简洁而深刻的文字表达来激发读者的思考和感悟。该产品通过每天提供一句精选的短语&#xff0c;让用户在繁忙的生活中停下脚步&#xff0c;思考人生和内心的真实需求。 每一句文心一言都经过精心挑选&#xff0c;它们通…

小程序-滚动触底-页面列表数据无限加载

// index/index.vue <template> <!-- 自定义导航栏 --> <CustomNavbar /> <scroll-view scrolltolower"onScrolltolower" scroll-y class"scroll-view"> <!-- 猜你喜欢 --> <Guess ref"guessRef" /> </s…

恶劣天气下的车辆探测:多方关注 多模态融合方法

摘要 在自动驾驶汽车技术领域&#xff0c;多模式车辆检测网络(MVDNet)代表了一个重大的飞跃&#xff0c;特别是在具有挑战性的天气条件下。本文主要通过集成多头关注层对MVDNet进行增强&#xff0c;旨在改进其性能。MVDNet模型中集成的多头关注层是一个关键的改进&#xff0c;…

民国漫画杂志《时代漫画》第14期.PDF

时代漫画14.PDF: https://url03.ctfile.com/f/1779803-1247458399-6732ac?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps:资源来源网络&#xff01;

java+ vue.js+uniapp一款基于云计算技术的企业级生产管理系统,云MES源码 MES系统如何与ERP系统集成?

java vue.jsuniapp一款基于云计算技术的企业级生产管理系统&#xff0c;云MES源码&#xff0c;MES系统如何与ERP系统集成&#xff1f; MES系统&#xff08;制造执行系统&#xff09;与ERP系统&#xff08;企业资源规划系统&#xff09;的集成可以通过多种方式实现&#xff0c;这…

探索亚马逊云科技技术课程:大模型平台与提示工程的应用与优化

上方图片源自亚马逊云科技【生成式 AI 精英速成计划】技术开发技能课程 前言 学习了亚马逊云科技–技术开发技能课程 本课程分为三个部分&#xff0c;了解如何使用大模型平台、如何训练与部署大模型及生成式AI产品应用与开发&#xff0c;了解各类服务的优势、功能、典型使用案…

苹果MacOS系统使用微软远程桌面连接Windows电脑桌面详细步骤

文章目录 前言1. 测试本地局域网内远程控制1.1 Windows打开远程桌面1.2 局域网远程控制windows 2. 测试Mac公网远程控制windows2.1 在windows电脑上安装cpolar2.2 Mac公网远程windows 3. 配置公网固定TCP地址 前言 日常工作生活中&#xff0c;有时候会涉及到不同设备不同操作系…