1、背景描述
原来的 MySQL 在安装时,是最新的稳定版本 5.7.33 。
经过一段时间后,在原来的 MySQL 版本中,发现存在漏洞。
因为 MySQL 的官方补丁,需要 Oracle 的 si 码(Support Identifier),不是免费的。
因此,只好将旧版本(5.7.33)升级到没有漏洞的新版本(5.7.44)。
提示:无论旧版本的数据库,是使用安装器方式安装的,还是使用解压包方式安装的;都可以(且推荐)使用解压包方式来升级。
2、下载Mysql的最新安装包
下载地址:https://downloads.mysql.com/archives/community/
注意:官网的下载速度可能很慢,有任务时间要求的须尽快下载,或者使用其他可靠的下载源
如上图所示,旧版本是 5.7.33 的,新版本应该选择 5.7.x 中最新的,本例为 5.7.44 。
注意:选择完MySQL的版本后,可以看到下载列表中有两个可以选择,下载名字不带 Debug 和 Test 的即可。
3、解压到安装目录
如上图所示,本例将 MySQL 的压缩包的文件解压到 MySoft 目录下,这个操作相当于指定了 MySQL 的安装目录。
4、创建my.ini配置文件
如上图所示,先创建一个 my.txt 文件,编辑好配置信息后,再将文件后缀修改为 ini 。
[mysqld]
# 设置MySQL的安装目录路径
basedir=C:/MySoft/mysql-5.7.44-winx64
# 设置MySQL的数据目录路径
datadir=C:/MySoft/mysql-5.7.44-winx64/data
# 默认接收的数据包大小为 1M ,这里设置大一点为 20M
max_allowed_packet=20M
注意:上述截图和实际配置文本有点差异,主要是增加了接收的数据包大小设置“max_allowed_packet=20M”。
5、修改旧MySQL服务属性
如上图所示,启动类型设为“禁用”,服务状态点击停止。
如上图所示,这是旧MySQL服务属性修改后的状态。
提示:可以通过任务管理器,进入Windows服务界面:
6、复制data目录
如上图所示,将旧 MySQL 版本的 data 目录复制到新 MySQL 版本的安装目录中。
提示:一般 MySQL 的 data 目录默认路径在隐藏的文件夹“C:\ProgramData\MySQL\MySQL Server”中。
7、注册新MySQL到Windows服务
如上图所示,以管理员身份运行“命令提示符”。
如上图所示,在“命令提示符”窗口中,进入新 MySQL 的 bin 目录(本例为:C:\MySoft\mysql-5.7.44-winx64\bin)
cd MySQL的bin目录路径
如上图所示,为了避免和旧 MySQL 版本的服务名有冲突, 将MySQL 注册到 Windows 服务时,指定了一个自定义的服务名(本例为:mysql5744)。
mysqld -install 自定义的服务名
注意:执行该命令时,可能会提示缺少 xxx.ddl,一般去下载安装 Microsoft Visual C++ 2015-2019 Redistributable 环境依赖即可解决。
如上图所示,已成功注册 MySQL 到 Window s服务,服务名为自定义的 mysql5744 。
8、启动新MySQL服务
8.1、启动方式一
如上图所示,可以在 Windows 服务界面,直接选择 MySQL 服务启动。
8.2、启动方式二
如上图所示,可以通过命令启动 MySQL 服务,启动成功会有相关提示信息。
net start mysql服务名
提示:暂停 MySQL 服务的命令为“net stop mysql服务名”
注意:执行该命令时,可能会报错“服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助”;
这个可能是因为在执行“mysqld -install 自定义的服务名”命令时,存在 mysqld 的环境变量问题,用到了旧 MySQL 设置的环境变量。
此时可以去 Windows 服务界面查看该新 MySQL 服务的“可执行文件的路径”:
如果该值不是新 MySQL 的路径,可以通过以下方式解决:
删除存在问题的 MySQL 服务:mysqld -remove 自定义的服务名
全路径注册新 MySQL
到 Windows 服务:C:\Mysoft\mysql-5.7.44-winx64\bin\mysql.exe -install 自定义的服务名
8.3、查看新MySQL服务状态
如上图所示,新 MySQL 服务正在运行,且开机自动启动运行。
9、登录检查新版本MySQL
如上图所示,登录新 MySQL 成功。此外,登录信息还显示目前的版本号为 5.7.44 。
如上图所示,新MySQL数据库,也正常复制了旧数据库开启的远程访问权限。
本文参考
【1】【忘不念】【mysql5.7.3至5.7.4升级步骤-windows】【CSDN】【 2023-10-27】
【2】【qyhua】【mysql漏洞修复(mysql升级)】【CSDN】【2024-03-14】
【3】【gblfy】【com.mysql.jdbc.PacketTooBigException: Packet for query is too large 异常解决办法】【51CTO】【2022-09-05】
【4】【左岸麦田】【Microsoft Visual C++ 2019 v14.28.29617】【博客园】【2020-03-18】
【5】【Feynmania】【mysql8.0.25安装问题记录:MySQL服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助】【博客园】【2021-05-13】