Skip to main content

moregeek program

mysql_upgrade升级_清晨的博客-多极客编程

一、概述

安装一个新版本的 MySQL 可能需要升级现有安装的这些部分:
MySQL 系统模式,其中包含存储 MySQL 服务器运行时所需信息的表
Mysql 模式表分为两大类:
存储数据库对象元数据的数据字典表。
系统表(即其余的非数据字典表) ,用于其他操作目的
其他模式,其中一些是内置的,可能被认为是服务器“拥有的”,其他的则不是:
Performance Schema、 INFORATION _ SCHEMA、 ndbinfo 和 sys schema
User schemas

两个不同的版本号与可能需要升级的安装部分相关联:
数据字典版本。这适用于数据字典表。
服务器版本,也称为 MySQL 版本。这适用于其他模式中的系统表和对象

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

作为刚才提到的两个不同版本的反映,升级分两个步骤进行:
第一步:数据字典升级。
这一步升级:
mysql架构中的数据字典表。如果实际数据字典版本低于当前预期版本,则服务器创建具有更新定义的数据字典表,将持久化元数据复制到新表,用新
表原子替换旧表,并重新初始化数据字典。
Performance Schema、INFORMATION_SCHEMA和 ndbinfo。

第二步:服务器升级。
此步骤包括所有其他升级任务。如果现有 MySQL 安装的服务器版本低于新安装的 MySQL 版本,则必须升级其他所有内容:
架构中的系统表mysql(剩余的非数据字典表)。
The sys schema.
User schemas

二、新特性

MySQL 8.0.16 开始,MySQL 不推荐使用mysql_upgrade。取而代之的是server upgrade的升级方式。
Prior to MySQL 8.0.16, mysql_upgrade upgrades the Performance Schema, the INFORMATION_SCHEMA, and the objects
described in step 2. The DBA is expected to invoke mysql_upgrade manually after starting the server.

As of MySQL 8.0.16, the server performs all tasks previously handled by mysql_upgrade. Although upgrading remains
a two-step operation, the server performs them both, resulting in a simpler process.

在 MySQL 8.0.16 之前
1. 关闭 MySQL,替换新的二进制 MySQL
2. 启动 MySQL,让服务器升级 DD(数据字典)表
3. 运行 mysql_upgrade,更新系统表和用户表
4. 加载新的帮助表
5. 重启 MySQL

从 MySQL 8.0.16 开始:
1. 关闭 MySQL,替换新的二进制 MySQL
2. 启动 MySQL,升级 DD(数据字典)表和系统表、用户表和帮助表
升级的时间和操作都会大幅度缩短,操作步骤也减少了很多,更方便了用户。

步骤 2 中发生的大多数方面在 MySQL 8.0.16 之前和之前都是相同的,尽管可能需要不同的命令选项来实现特定的效果。
从 MySQL 8.0.16 开始,--upgrade server 选项控制服务器是否以及如何在启动时执行自动升级:
如果没有选项或使用 --upgrade=AUTO,服务器会升级它确定为过时的任何内容(步骤 12)。
使用--upgrade=NONE时,服务器不升级任何内容(跳过步骤 12),但如果必须升级数据字典,也会出错退出。无法使用过时的数据字典运行服
务器;服务器坚持升级或退出。
使用--upgrade=MINIMAL,服务器会升级数据字典、性能模式和INFORMATION_SCHEMA(如果需要)(步骤 1)。请注意,使用此选项升级后,无法
启动组复制,因为复制内部所依赖的系统表未更新,并且其他区域的功能减少也可能很明显。
使用--upgrade=FORCE,服务器会升级数据字典、性能模式和INFORMATION_SCHEMA,如有必要(步骤 1),并强制升级其他所有内容(步骤 2)。
使用此选项预计服务器启动时间会更长,因为服务器会检查所有模式中的所有对象。

FORCE如果服务器认为没有必要,强制执行第 2 步操作很有用。FORCE与 不同的一种方式AUTO 是,FORCE如果缺少帮助表或时区表,服务器会重新
创建系统表。

©著作权归作者所有:来自51CTO博客作者哭泣的馒头的原创作品,请联系作者获取转载授权,否则将追究法律责任

调整home分区空间到根分区_wemux的博客-多极客编程

当前分区情况Filesystem Size Used Avail Use% Mounted ondevtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 0 7.8G 0% /dev/shmtmpfs 7.8G

mysql的原始监控方式_mingo的博客-多极客编程

对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色;而对于MySQL数据库,由于其有很高的社区活跃度,监控方式更是多种多样,不管哪种监控方式最核心的就是监控数据,获取得到全面的监控数据后就是灵活的展示部分。 那我们今天就介绍一下完全采用MySQL自有方式采集获取监控数据,在单体下达到最快速、方便、损耗最小。 本次文章完全使用MySQL自带的show命令实现获取,

mysql加密连接三、openssl 创建 ssl 证书和密钥_清晨的博客-多极客编程

一、使用openssl创建SSL1、命令行创建 SSL 文件# Create clean environmentrm -rf newcertsmkdir newcerts && cd newcerts# Create CA certificateopenssl genrsa 2048 > ca-key.pemopenssl req -new -x509 -nodes -day

使用coroot-pg-agent采集pg指标_李如磊的博客-多极客编程

coroot-pg-agent 和 postgres_exporter 的不同之处在于, coroot-pg-agent 主要是根据 pg_stat_statements 这个extension来采集sql维度的指标。 而 postgres_exporter 更关注的是metrics维度的指标。coroot-pg-agent 的部署也很简单,参考官方github即可。说明: 我这里演示的pg14,

linux 实时记录用户执行的命令_清晨的博客-多极客编程

一、概述Linux是一种支持多用户操作的OS, 经常OS文件做出了一些更改,但是无从查起是谁,是什么时候做的修改。其实Linux下可以借助​​PROMPT_COMMAND​​这个环境变量实现这一功能,环境变量​​PROMPT_COMMAND​​记录了用户操作终端命令提示符出现前执行的命令。二、方法在/etc/profile中添加如下内容export HISTFILE="/var/log/$(dat

linux日志文件utmp、wtmp_清晨的博客-多极客编程

一、概述/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要

调整home分区空间到根分区_wemux的博客-多极客编程

当前分区情况Filesystem Size Used Avail Use% Mounted ondevtmpfs 7.8G 0 7.8G 0% /devtmpfs 7.8G 0 7.8G 0% /dev/shmtmpfs 7.8G

如何用redis查漏补缺_mb6242cc9db1000的博客-多极客编程

Redis简介Redis 是 C 语言开发的一个开源高性能键值对的内存数据库,可以用来做数据库、缓存、消息中间件等场景,是一种 NoSQL(not-only sql,非关系型数据库)的数据库。Redis特点优秀的性能,数据是存储在内存中,读写速度非常快,可支持并发10W QPS。单线程但进程,是线程安全的,采用IO 多路复用制可作为分布式锁支持五种数据类型支持数据持久化到磁盘可以作为消息中间件使用

某车联网app 通讯协议加密分析(四) trace code_奋飞安全的博客-多极客编程

一、目标 之前我们已经通过Trace Block 来比对了Unidbg和App跑的结果。现在他们运行的流程都差不多了,但是结果还是不对,今天我们就要通过Trace Code进行更细致的对比。 v6.1.0 二、步骤 缩小Trace的范围 Trace Code那么好使,我们为什么不一上来就Trace一遍? 因为Trace Code的粒度太细了,一上来就搞,跑出几百万行结果,根本没法看。 我们通过Tr

使用coroot-pg-agent采集pg指标_李如磊的博客-多极客编程

coroot-pg-agent 和 postgres_exporter 的不同之处在于, coroot-pg-agent 主要是根据 pg_stat_statements 这个extension来采集sql维度的指标。 而 postgres_exporter 更关注的是metrics维度的指标。coroot-pg-agent 的部署也很简单,参考官方github即可。说明: 我这里演示的pg14,

“wpf老矣,尚能饭否”—且说说wpf今生未来(上):担心_葡萄城技术团队的博客-多极客编程

近日微软公布了最新的WPF路线图,一片热议;对于老牌控件提供商葡萄城来说,这是WPF系列控件一个重要的机遇,因此,Spread Studio for WPF产品做了一次重要更新,并随着Spread Studio 8.0发布。鉴于此,选择翻译并整理了一篇自codeproject的文章:《Is WPF dead: the present and future of W

asp.net 5系列教程 (三):view components介绍_葡萄城技术团队的博客-多极客编程

在ASP.NET MVC 6中,view components (VCs) 功能类似于虚拟视图,但是功能更加强大。 VCs兼顾了视图和控制器的优点,你可以把VCs 看作一个Mini 控制器。 在ASP.NET MVC 6中,view components (VCs) 功能类似于虚拟视图,但是功能更加强大。 VCs兼顾了视图和控制器的优点,你可以把VCs 看