做外贸需要到外汇管理网站,简单美食网站模板免费下载,做瞹瞹瞹视频免费网站,如何做网站认证本指南详细介绍了将 MySQL 升级到 8.4 版本的完整流程、注意事项和操作方法。
一、升级前准备 (3.1 Before You Begin)
在开始升级之前#xff0c;必须仔细审阅本节信息并执行所有推荐的操作#xff1a; 理解升级过程#xff1a;了解升级期间可能发生的情况。请参阅第 3.4…本指南详细介绍了将 MySQL 升级到 8.4 版本的完整流程、注意事项和操作方法。
一、升级前准备 (3.1 Before You Begin)
在开始升级之前必须仔细审阅本节信息并执行所有推荐的操作 理解升级过程了解升级期间可能发生的情况。请参阅第 3.4 节“MySQL 升级过程升级的内容”。 备份数据创建完整的数据库备份以保护您的数据。此备份必须包含 mysql 系统数据库该数据库存储了 MySQL 数据字典表和其他系统表。 重要提示 不支持从 MySQL 8.4 降级到 MySQL 8.3或从一个 MySQL 8.4 版本降级到更早的 MySQL 8.4 版本。唯一支持的降级替代方案是恢复升级前创建的备份。因此在启动升级过程之前备份数据是绝对必要的。 检查升级路径审阅第 3.2 节“升级路径”确保您计划的升级路径是受支持的。 审阅变更审阅第 3.5 节“MySQL 8.4 中的变更”了解升级前需要注意的变更。某些变更可能需要您采取行动。 审阅废弃和移除功能审阅第 1.4 节“自 MySQL 8.0 以来 MySQL 8.4 的新变化”中关于废弃和移除功能的信息。如果您使用了这些功能中的任何一项升级可能需要相应更改。 审阅配置变量变更审阅第 1.5 节“自 8.0 以来 MySQL 8.4 中新增、废弃或移除的服务器和状态变量及选项”。如果您使用了废弃或已移除的变量升级可能需要更改配置。 查阅发行说明查阅 MySQL 8.4 的发行说明了解修复、变更和新功能信息。 复制环境如果使用了复制审阅第 19.5.3 节“升级或降级复制拓扑”。 遵循最佳实践审阅第 3.3 节“升级最佳实践”并相应地进行规划。
二、升级路径 (3.2 Upgrade Paths)
注意
在尝试降级之前请确保了解 MySQL 长期支持 (LTS) 和创新版本的发布模型。建议在执行升级之前使用 MySQL Shell 的升级检查器工具 (util.checkForServerUpgrade()) 检查升级兼容性。复制拓扑的升级遵循第 19.5.3 节“升级或降级复制拓扑”中描述的滚动升级方案该方案使用支持的单一服务器升级方法之一来升级每个单独的服务器。月度快速更新 (MRU) 和热修复在此文档中也视为发布。
表MySQL 服务器的升级路径
升级路径路径示例支持的升级方法在同一个 LTS 或 Bugfix 系列内8.0.37 到 8.0.41 或 8.4.0 到 8.4.4原地升级、逻辑导出导入、复制、MySQL 克隆从 LTS/Bugfix 系列到下一个 LTS 系列8.0.37 到 8.4.x LTS原地升级、逻辑导出导入、复制从 LTS/Bugfix 到下一个 LTS 系列之前的创新版8.0.34 到 8.3.0 或 8.4.0 到 9.0.0原地升级、逻辑导出导入、复制从创新系列到下一个 LTS 系列8.3.0 到 8.4 LTS原地升级、逻辑导出导入、复制从创新系列到下一个 LTS 系列之后的创新版不允许需要两步8.3.0 到 8.4 LTS然后 8.4 LTS 到 9.x 创新版在同一个创新系列内8.1.0 到 8.3.0原地升级、逻辑导出导入、复制从 MySQL 5.7 到 LTS 或创新版MySQL 5.7 到 8.4不能跳过 Bugfix 或 LTS 系列。例如需先将 MySQL 5.7 升级到 MySQL 8.0再将 MySQL 8.0 升级到 MySQL 8.4。
三、升级最佳实践 (3.3 Upgrade Best Practices)
MySQL 支持在次要版本之间LTS 系列内升级和跨主版本跨 LTS 系列升级。升级可提供最新的功能、性能和安全性修复。
为确保成功升级到最新的 MySQL 8.4 版本我们推荐以下最佳实践
决定升级的主版本或次版本 了解 MySQL 发布模型中 LTS长期支持和创新版本的区别。LTS 版本提供 8 年以上的支持适用于生产环境。创新版本为用户提供最新的功能和能力。次要版本升级通常较简单而主版本升级需要战略规划和额外的升级前测试。本指南对主版本升级尤其有用。 决定升级类型 原地升级 (In-place)替换 MySQL 服务器软件包。逻辑升级 (Logical)将 SQL 从旧的 MySQL 实例导出并导入到新的实例。复制拓扑升级 (Replication)考虑每个服务器在拓扑中的角色。 审查支持的平台 如果您的当前操作系统不被新版本的 MySQL 支持则计划升级操作系统否则不支持原地升级。查看当前支持的平台列表https://www.mysql.com/support/supportedplatforms/database.html 了解 MySQL 服务器变更 每个主版本都会带来新功能、行为变更、废弃项和移除项。了解这些变更对现有应用的影响至关重要。参阅第 3.5 节 “MySQL 8.4 中的变更”。 运行升级检查器并修复不兼容问题 使用 MySQL Shell 的升级检查器工具 (util.checkForServerUpgrade()) 检测数据库版本之间必须解决的升级前不兼容问题。连接到现有的 MySQL 服务器并选择计划升级到的目标 MySQL 服务器版本。该工具将报告升级前需要解决的问题例如数据类型、存储引擎等的不兼容性。当升级检查器不再报告任何问题时您已准备好升级。 在测试环境中运行应用程序 完成升级检查器的要求后下一步在目标 MySQL 服务器上测试您的应用程序。检查 MySQL 错误日志和应用程序日志中的错误和警告。 对应用程序和工作负载进行基准测试 建议通过比较应用程序和工作负载在 MySQL 新旧版本上的性能表现来进行基准测试。通常较新的 MySQL 版本会增加功能并提高性能但在某些情况下特定查询在升级后可能会变慢。可能导致性能下降的原因包括 先前的服务器配置对新版本不是最优的数据类型变更多字节字符集支持需要更多存储空间存储引擎变更索引被删除或更改更强的加密更强的认证SQL 优化器变更新版本的 MySQL 需要更多内存物理或虚拟硬件变慢计算或存储 有关信息及可能的缓解技术请参阅 验证性能下降。 并行运行新旧 MySQL 版本 为最小化风险最好在运行升级系统的同时保持当前系统运行并行运行。 进行最终的测试升级 在升级生产系统之前进行练习和全面测试升级流程。 检查 MySQL 备份 在执行升级之前确认存在完整的备份并且可用。 升级生产服务器 完成上述步骤后即可进行生产环境升级。 企业支持 如果您是 MySQL 企业版客户还可以联系 MySQL 支持团队专家咨询任何问题。
四、MySQL 升级过程升级的内容 (3.4 What the MySQL Upgrade Process Upgrades)
安装新版本的 MySQL 可能需要升级现有安装的以下部分
mysql 系统模式包含存储 MySQL 服务器运行时所需信息的表参见第 7.3 节 “mysql 系统模式”。mysql 模式表分为两大类 数据字典表存储数据库对象元数据。系统表即剩余的非数据字典表用于其他操作目的。 其他模式包括一些内置的、可视为服务器“拥有”的模式以及其他用户模式 performance_schema、INFORMATION_SCHEMA、ndbinfo 和 sys 模式。用户模式。
有两个不同的版本号与可能需要升级的部分相关联
数据字典版本适用于数据字典表。服务器版本又称 MySQL 版本适用于系统表和其他模式中的对象。
升级过程发生在两个步骤
步骤 1数据字典升级 升级 mysql 模式中的数据字典表、Performance Schema、INFORMATION_SCHEMA 和 ndbinfo。由服务器在启动时自动执行除非使用 --upgradeNONE 选项禁止。如果数据字典过期但被禁止升级服务器将无法启动并报错退出。使用 --upgrade 服务器选项控制自动升级行为 --upgradeAUTO (或无选项)升级所有过期的内容步骤 1 和 2。--upgradeNONE不升级任何内容但如果数据字典必须升级则退出报错。--upgradeMINIMAL仅升级数据字典、Performance Schema 和 INFORMATION_SCHEMA步骤 1。注意此选项后无法启动组复制且其他功能可能受限。--upgradeFORCE升级步骤 1 的内容并强制升级其他所有内容步骤 2。启动时间可能较长。 步骤 2服务器升级 升级 mysql 模式中的系统表剩余的非数据字典表、sys 模式和用户模式。安装或升级 sys 模式如果存在同名用户模式会报错。将系统表升级到当前结构包括帮助表不包括时区表。更改 mysql.db, mysql.tables_priv, mysql.columns_priv, mysql.procs_priv 表主键列顺序以提升性能对拥有大量用户和权限的系统可能耗时。使用 CHECK TABLE ... FOR UPGRADE 检查并处理所有用户模式中的所有表可能耗时且锁表。将所有检查和修复过的表标记为当前的 MySQL 版本号。注意升级过程不会升级时区表的内容。升级时区表需手动操作参见第 7.1.15 节 “MySQL 服务器时区支持”。
五、MySQL 8.4 中的变更 (3.5 Changes in MySQL 8.4)
在升级到 MySQL 8.4 之前请审阅以下部分描述的变更以识别适用于您当前 MySQL 安装和应用程序的变更 MySQL 8.4 中的不兼容变更 空间索引升级到 MySQL 8.4.4 或更高版本时建议在升级前删除所有空间索引升级完成后再重新创建它们。或者您也可以在升级后立即但在使用包含这些索引的表之前删除并重新创建此类索引。更多信息参见第 13.4.10 节 “创建空间索引”。移除 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() 函数MySQL 8.0 中已废弃的 WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS() SQL 函数在 8.4 中已移除尝试调用它现在会导致语法错误。请改用 WAIT_FOR_EXECUTED_GTID_SET()。authentication_fido 和 authentication_fido_client 在某些平台上不再可用由于服务器捆绑的 libfido2 库升级到需要 OpenSSL 1.1.1 或更高版本的 1.13.0authentication_fido 和 authentication_fido_client 认证插件在 Enterprise Linux 6, Enterprise Linux 7, Solaris 11 或 SUSE Enterprise Linux 12 上不再可用。命令行选项禁止设置为 NULL在命令行上将服务器变量设置为 SQL NULL 是不支持的。在 MySQL 8.4 中明确禁止将任何此类变量设置为 NULL尝试这样做将被拒绝并报错。特定变量如 basedir, datadir, plugin_dir 等除外。参见第 7.1.8 节 “服务器系统变量”。更多变更信息请参阅第 1.4 节 “自 MySQL 8.0 以来 MySQL 8.4 的新变化”。 变更的服务器默认值 下表列出了 MySQL 8.4 与 MySQL 8.0 相比系统变量默认值发生变化的项目。虽然新默认值适用于大多数用例但在特定场景或需要兼容旧配置时可能需要调整。 分类系统变量旧默认值新默认值InnoDB 变更innodb_adaptive_hash_indexONOFFinnodb_buffer_pool_in_core_fileONOFFinnodb_buffer_pool_instancesinnodb_buffer_pool_size 1GB: 1; 否则: 8innodb_buffer_pool_size 1GB: 1; 否则: MIN( 0.5 * (innodb_buffer_pool_size / innodb_buffer_pool_chunk_size), 0.25 * number_of_cpus)innodb_change_bufferingallnoneinnodb_doublewrite_filesinnodb_buffer_pool_instances * 22innodb_doublewrite_pagesinnodb_write_io_threads 的值128innodb_flush_methodfsync支持则 O_DIRECT否则 fsyncinnodb_io_capacity20010000innodb_io_capacity_maxMIN(2 * innodb_io_capacity, 2000)2 * innodb_io_capacityinnodb_log_buffer_size16777216 (16MB)67108864 (64MB)innodb_numa_interleaveOFFONinnodb_page_cleaners4innodb_buffer_pool_instances 的值innodb_parallel_read_threads4MIN(number_of_cpus / 8, 4)innodb_purge_threads4如果 number_of_cpus 16: 1; 否则: 4innodb_use_fdatasyncOFFON组复制变更group_replication_consistencyEVENTUALBEFORE_ON_PRIMARY_FAILOVERgroup_replication_exit_state_actionREAD_ONLYOFFLINE_MODE临时表变更temptable_max_mmap1073741824 (1GB)0temptable_max_ram1073741824 (1GB)总内存的 3% (范围 1-4 GB)temptable_use_mmapONOFF 有关 MySQL 8.4 中新增的选项或变量请参阅 MySQL 服务器版本参考中的“MySQL 8.4 的选项和变量变更”。性能模式 variables_info 表显示了每个系统变量的设置来源及其取值范围。
六、准备安装进行升级 (3.6 Preparing Your Installation for Upgrade)
在升级到最新的 MySQL 8.4 版本之前通过执行以下初步检查确保您当前的 MySQL 8.3 或 MySQL 8.4 服务器实例已做好升级准备
提示 考虑使用 MySQL Shell 升级检查器工具 (util.checkForServerUpgrade()) 来验证 MySQL 服务器实例是否已准备好升级。您可以指定计划升级到的目标 MySQL 服务器版本从 MySQL Server 8.0.11 到与当前 MySQL Shell 版本号匹配的 MySQL Server 版本号。该工具执行与指定目标版本相关的自动检查并建议您应手动进行的其他相关检查。升级检查器适用于 MySQL 的所有 Bugfix、Innovation 和 LTS 版本。MySQL Shell 安装说明请参阅 此处。
初步检查必须不存在以下问题
运行升级兼容性检查mysqlcheck -u root -p --all-databases --check-upgrade如果 mysqlcheck 报告任何错误请纠正这些问题。具体包括 没有使用废弃数据类型或函数的表。没有孤立的 .frm 文件。触发器没有缺失或空的定义者 (DEFINER) 或无效的创建上下文由 SHOW TRIGGERS 或 INFORMATION_SCHEMA.TRIGGERS 表中的 character_set_client, collation_connection, Database Collation 属性指示。任何此类触发器必须导出并重新导入以修复问题。 检查不支持分区的存储引擎SELECT TABLE_SCHEMA, TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE ENGINE NOT IN (innodb, ndbcluster)AND CREATE_OPTIONS LIKE %partitioned%;查询报告的任何表必须更改为使用 InnoDB 或使其变为非分区表 更改存储引擎ALTER TABLE table_name ENGINE INNODB; (参见第 17.6.1.5 节 “将表从 MyISAM 转换到 InnoDB”)。移除分区ALTER TABLE table_name REMOVE PARTITIONING; 检查保留关键字冲突MySQL 8.4 中的一些新保留关键字可能使之前用作标识符的词变得非法。修复方法是使用反引号 引用标识符。参见第 11.2 节 “模式对象名称” 和第 11.3 节 “关键字和保留词”。检查与数据字典表冲突的用户表SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERELOWER(TABLE_SCHEMA) mysqlANDLOWER(TABLE_NAME) IN(catalogs, character_sets, check_constraints, collations, column_statistics,column_type_elements, columns, dd_properties, events, foreign_key_column_usage,foreign_keys, index_column_usage, index_partitions, index_stats, indexes,parameter_type_elements, parameters, resource_groups, routines, schemata,st_spatial_reference_systems, table_partition_values, table_partitions, table_stats,tables, tablespace_files, tablespaces, triggers, view_routine_usage, view_table_usage);查询报告的任何表必须删除或重命名 (RENAME TABLE)。这也可能需要更改使用这些受影响表的应用程序。检查过长的外键约束名 (超过 64 字符)SELECT TABLE_SCHEMA, TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN(SELECT LEFT(SUBSTR(ID,INSTR(ID,/)1),INSTR(SUBSTR(ID,INSTR(ID,/)1),_ibfk_)-1)FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGNWHERE LENGTH(SUBSTR(ID,INSTR(ID,/)1))64);对于约束名超过 64 字符的表删除该约束并使用不超过 64 字符的约束名重新添加 (ALTER TABLE ... DROP FOREIGN KEY ..., ADD CONSTRAINT ... FOREIGN KEY ...)。检查 SQL 模式sql_mode 系统变量中不能定义已废弃的 SQL 模式。尝试使用已废弃的 SQL 模式会阻止 MySQL 8.4 启动。应修改使用已废弃 SQL 模式的应用程序以避免它们。参见服务器变更中移除的 SQL 模式。确保正常关机仅升级已正确关闭的 MySQL 服务器实例。如果实例意外关闭请重启该实例并使用 innodb_fast_shutdown0 关闭它后再进行升级。检查视图列名长度不能有显式定义列名超过 64 字符的视图MySQL 5.7 允许最多 255 字符。为避免升级错误应在升级前修改此类视图。识别方法使用 SHOW CREATE VIEW 或查询 INFORMATION_SCHEMA.VIEWS 表检查视图定义。检查 ENUM/SET 元素长度不能有单个 ENUM 或 SET 列元素超过 255 字符或 1020 字节长度的表或存储过程。在 MySQL 8.4 之前ENUM 或 SET 列元素的最大组合长度为 64K。在 MySQL 8.4 中单个 ENUM 或 SET 列元素的最大字符长度为 255最大字节长度为 1020支持多字节字符集。在升级到 MySQL 8.4 之前修改任何超出新限制的 ENUM 或 SET 列元素。否则会导致升级失败。移除废弃功能您的 MySQL 8.3 安装不能使用 MySQL 8.4 不支持的功能。例如 审阅 MySQL 8.4 中移除的功能和已移除的服务器启动选项及系统变量参见第 1.5 节。如果使用了其中任何一项升级需要更改配置。 lower_case_table_names 变更注意事项 如果您打算在升级时将 lower_case_table_names 设置更改为 1请确保在升级前模式和表名都是小写的。否则由于模式或表名字母大小写不匹配可能会导致失败。使用以下查询检查包含大写字符的模式和表名SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.tables
WHERE TABLE_NAME COLLATE utf8mb4_bin LOWER(TABLE_NAME) COLLATE utf8mb4_bin;注意不建议在升级时更改 lower_case_table_names 设置。如果 lower_case_table_names1升级过程会检查表和模式名是否全为小写字符。如果发现包含大写字符的表或模式名升级过程将因错误而失败。
升级失败处理 如果升级到 MySQL 8.4 因上述任何问题失败服务器将回滚对数据目录的所有更改。在这种情况下应删除所有重做日志文件 (ib_logfile*)在现有数据目录上重新启动 MySQL 8.3 服务器以解决错误。修复错误后执行慢速关闭 (innodb_fast_shutdown0)然后再次尝试升级。
七、Unix/Linux 上基于二进制或软件包的安装升级 (3.7)
升级方法取决于平台和初始安装方式
1. 原地升级 (In-Place Upgrade)
原地升级涉及关闭旧服务器用新的二进制文件或软件包替换旧的然后在现有数据目录上重启新服务器。
步骤
审阅第 3.1 节信息。按照第 3.6 节完成安装准备检查。XA 事务如果使用 InnoDB 的 XA 事务升级前运行 XA RECOVER 检查未提交的 XA 事务。如果有结果使用 XA COMMIT 或 XA ROLLBACK 提交或回滚这些事务。关机设置如果通常配置 innodb_fast_shutdown2 (冷关机)请配置为执行快速或慢速关机SET GLOBAL innodb_fast_shutdown 1; -- 快速关机
SET GLOBAL innodb_fast_shutdown 0; -- 慢速关机 (推荐用于跨版本升级)关闭旧服务器mysqladmin -u root -p shutdown升级 MySQL 二进制文件或软件包 二进制安装解压新的 MySQL 二进制分发包 (参见 获取并解压分发版)。软件包安装安装新软件包 (注意如果最初安装了多个 RPM 包需升级所有包而不仅仅是服务器包)。对于 Yum/APT/SLES 仓库安装请使用相应的包管理器命令 (如 sudo yum update mysql-server, sudo apt-get install mysql-server)。注意对于使用 systemd 的平台 (RPM/Debian 包安装)使用 systemctl 管理服务 (systemctl stop mysqld, systemctl start mysqld)而不是 mysqld_safe。 启动 MySQL 8.4 服务器 (使用现有数据目录)mysqld_safe --usermysql --datadir/path/to/existing-datadir
# 或者对于 systemd 系统
sudo systemctl start mysqld如果有加密的 InnoDB 表空间使用 --early-plugin-load 选项加载密钥环插件。 自动升级 服务器启动时自动检测数据字典表是否存在。如果不存在则在数据目录中创建它们用元数据填充然后继续正常启动序列。此过程升级所有数据库对象的元数据数据库、表空间、系统和用户表、视图、存储程序并移除以前用于元数据存储的文件如 .frm 文件。失败处理如果此步骤失败服务器回滚更改。需删除重做日志文件重启旧版服务器修复错误慢速关机后重试升级。此步骤还根据需要升级 mysql 系统数据库更新 Performance Schema、INFORMATION_SCHEMA、sys 数据库并检查所有用户数据库与当前 MySQL 版本的兼容性。注意此过程不会升级时区表。升级时区表需手动操作参见第 7.1.15 节。
2. 逻辑升级 (Logical Upgrade)
逻辑升级涉及使用 mysqldump 等工具从旧实例导出 SQL安装新服务器然后将 SQL 导入到新实例。
步骤
审阅第 3.1 节信息。从旧安装导出数据mysqldump -u root -p --add-drop-table --routines --events --all-databases --force data-for-upgrade.sql重要提示 如果表包含生成列请使用 MySQL 5.7.9 或更高版本附带的 mysqldump。可以使用 INFORMATION_SCHEMA.COLUMNS 表识别带有生成列的表。关闭旧服务器mysqladmin -u root -p shutdown安装 MySQL 8.4参见第 2 章 “安装 MySQL”。初始化新数据目录mysqld --initialize --datadir/path/to/8.4-datadir记下屏幕上显示或写入错误日志的临时 ‘root’‘localhost’ 密码。启动 MySQL 8.4 服务器 (使用新数据目录)mysqld_safe --usermysql --datadir/path/to/8.4-datadir
# 或者对于 systemd 系统
sudo systemctl start mysqld重置 root 密码mysql -u root -p
Enter password: **** - 输入临时 root 密码
mysql ALTER USER USER() IDENTIFIED BY your new password;将导出的 SQL 导入新服务器mysql -u root -p --force data-for-upgrade.sql注意如果启用了 GTID (gtid_modeON) 且转储文件包含系统表不建议加载转储文件。mysqldump 为非事务性的 MyISAM 系统表发出 DML 指令这在启用 GTID 时是不允许的。另外将启用 GTID 的服务器转储加载到另一个启用 GTID 的服务器会生成不同的事务 ID。执行剩余升级操作 关闭服务器然后使用 --upgradeFORCE 选项重启以执行剩余的升级任务 mysqladmin -u root -p shutdown
mysqld_safe --usermysql --datadir/path/to/8.4-datadir --upgradeFORCE
# 或者对于 systemd 系统 (需在配置文件中设置 upgradeFORCE 或命令行传递)
sudo systemctl stop mysqld
sudo mysqld --usermysql --datadir/path/to/8.4-datadir --upgradeFORCE 使用 --upgradeFORCE 重启会强制进行步骤 2 的升级任务升级系统表、sys 模式、检查用户模式中的所有对象。注意此过程不会升级时区表。
3. MySQL 集群升级 (MySQL Cluster Upgrade)
MySQL 集群升级遵循常规滚动升级方案 (MGM 节点 - 数据节点 - API 节点/MySQL 服务器)。升级每个 mysqld 有两个步骤
导入数据字典使用 --upgradeMINIMAL 选项启动新的 mysqld 以升级数据字典但不升级系统表。服务器必须能连接到 NDB 集群才能完成此阶段。升级系统表不使用 --upgradeMINIMAL 选项重启每个 mysqld。
八、使用 MySQL Yum 仓库升级 (3.8)
适用于支持的 Yum-based 平台 (参见第 2.5.1 节)。
选择目标系列 默认情况下MySQL Yum 仓库会将 MySQL 更新到您安装时选择的发布轨道中的最新版本例如8.0.x 安装不会自动更新到 8.4.x。要更新到另一个发布系列必须首先禁用当前选定的子仓库并为目标系列启用子仓库。编辑 /etc/yum.repos.d/mysql-community.repo 文件中的子仓库条目。一般规则从一个 Bugfix 系列升级到另一个时应升级到下一个 Bugfix 系列而不是跳过一个。例如从 MySQL 5.7 升级到 8.4应先升级到 MySQL 8.0再升级到 8.4。MySQL Yum 仓库不支持原地降级。降级请参见第 4 章。 升级 MySQLsudo yum update mysql-server # 非 dnf 系统
sudo dnf upgrade mysql-server # dnf 系统
# 或者更新整个系统
sudo yum update # 非 dnf 系统
sudo dnf upgrade # dnf 系统
# 升级特定组件 (先列出sudo yum list installed | grep ^mysql)
sudo yum update package-name # 非 dnf 系统
sudo dnf upgrade package-name # dnf 系统注意MySQL 服务器在通过 Yum 更新后总是会重启。升级共享客户端库 使用旧的共享客户端库编译的应用程序在更新后应继续工作。如果重新编译应用程序并动态链接到更新后的库则需要在部署这些应用程序的系统上也部署 MySQL 提供的新共享库包。为此请在这些系统上添加 MySQL Yum 仓库并安装最新的共享库。
九、使用 MySQL APT 仓库升级 (3.9)
在 Debian 和 Ubuntu 平台上使用 MySQL APT 仓库执行原地升级。具体步骤参见 使用 MySQL APT 仓库升级 MySQL。
十、使用 MySQL SLES 仓库升级 (3.10)
在 SUSE Linux Enterprise Server (SLES) 平台上使用 MySQL SLES 仓库执行原地升级。具体步骤参见 使用 MySQL SLES 仓库升级 MySQL。
十一、在 Windows 上升级 (3.11)
升级方法取决于现有安装方式
1. 使用 MSI 安装程序升级
下载并执行最新的 MySQL Server MSI。虽然不支持直接跨系列升级但“自定义安装”选项允许指定安装位置否则默认安装到 C:\Program Files\MySQL\MySQL Server 8.4\。运行捆绑的 MySQL 配置器 (MySQL Configurator) 来配置新安装。
参考链接https://dev.mysql.com/doc/refman/8.4/en/upgrading.html