关于MySQL升级的话MySQL官方文档上面介绍了2个方法,’就地升级’和‘逻辑升级’。’就地升级‘就是升级底层的RPM包而‘逻辑升级’就是将旧MySQL数据库上的信息迁移到新MySQL数据库上。
本篇文章介绍到的是RPM包升级
升级MySQL版本的典型步骤包括:
备份:在进行任何数据库升级之前,最重要的是做好全面的数据备份,包括二进制日志、数据文件等,以防升级过程中发生任何不可预料的问题。
下载新版本RPM包:从MySQL官方网站或其他可信源下载对应的新版本RPM包,确保下载的版本与你的系统架构(如x86_64)相匹配。
停止MySQL服务:在升级前,你需要确保MySQL服务已经停止运行,以避免数据损坏或冲突。
安装新版本RPM包:使用RPM命令(如
yum install
或dnf install
,取决于你的系统包管理器)安装下载的新版本MySQL RPM包。这一步骤会自动处理依赖关系,并可能替换旧版本的文件和配置。数据兼容性检查与迁移:虽然直接使用RPM升级通常旨在保持向下兼容,但有时新版本可能会要求对数据结构进行调整。在重大版本升级时,遵循MySQL官方的升级指南特别重要,以检查和执行任何必要的数据迁移步骤。
配置更新:升级后,可能需要手动调整或验证配置文件(如
my.cnf
),以适应新版本的配置需求或利用新特性。启动MySQL服务并验证:完成上述步骤后,启动MySQL服务,并进行一系列的测试来验证升级是否成功,包括检查数据库的运行状态、数据的完整性以及新功能的可用性。
性能与安全优化:根据需要,可能还要对新版本进行性能调优和安全加固。
1.停止MySQL服务
systemctl stop mysqld
systemctl status mysqld
2.卸载旧的MySQL8.0.36 RPM包,卸载的时候必须按顺序卸载,否则会由依赖报错
rpm -qa | grep mysql
rpm -evh mysql-community-server-8.0.36-1.el7.x86_64
rpm -evh mysql-community-client-8.0.36-1.el7.x86_64
rpm -evh mysql-community-icu-data-files-8.0.36-1.el7.x86_64
rpm -evh mysql-community-libs-8.0.36-1.el7.x86_64
rpm -evh mysql-community-client-plugins-8.0.36-1.el7.x86_64
rpm -evh mysql-community-common-8.0.36-1.el7.x86_64
3.去官网下载新的MySQL RPM包 https://dev.mysql.com/downloads/mysql/
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.37-1.el9.x86_64.rpm-bundle.tar
4.解压并安装,安装的时候也要按顺序安装,否则会报依赖错误
tar -xvf mysql-8.0.37-1.el9.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.37-1.el9.x86_64.rpm
rpm -ivh mysql-community-server-8.0.37-1.el9.x86_64.rpm
5.重启MySQL服务
systemctl start mysqld
6.登陆MySQL查看版本
select version()
注意事项:
数据兼容性检查与迁移:不同版本的MySQL可能在数据存储格式、系统表结构、索引机制等方面有所差异。升级过程需要检查现有数据库的数据结构与新版本的兼容性,必要时对数据进行迁移或转换,确保数据能够在新版本中正确存储和访问。
二进制日志与事务日志处理:在升级前,MySQL会检查并处理现有的二进制日志和事务日志,确保在升级过程中及升级后能够正确地恢复未完成的事务或重放日志,维持数据一致性。
配置文件与系统变量更新:新版本MySQL可能引入新的配置选项,废弃旧的配置项,或者修改默认设置。升级过程中会自动或手动更新
my.cnf
等配置文件,以及相应的系统变量,以匹配新版本的要求。执行引擎与存储引擎升级:MySQL的核心执行引擎和存储引擎(如InnoDB)在不同版本间可能有显著改进。升级过程中会对这些引擎进行更新,包括但不限于性能优化、新功能集成和bug修复,这可能需要对存储的数据进行一定程度的重构或优化。
API与协议变化:如果MySQL的客户端/服务器协议、库接口(如libmysqlclient)有所改变,升级过程需要确保所有依赖这些API的应用程序也相应地更新,以保证与新版本数据库的兼容。
功能与性能增强:新版本通常会引入新的SQL语法、函数、存储过程等特性,以及性能上的优化。升级过程中可能需要对数据库设计、查询语句、触发器、视图等进行审查和调整,以利用新版本的功能优势。
安全与权限模型更新:MySQL的安全机制和权限系统也可能随版本升级而变化,涉及密码哈希算法、加密模块、安全相关的系统变量等。升级时会调整相关设置,确保数据库的安全性得到提升。
备份与回滚策略:在执行升级前,通常需要进行全面的数据库备份,以防升级失败或出现意外情况。同时,制定详细的回滚计划,确保在出现问题时能够迅速恢复到升级前的状态。