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】

Windows的MySQL数据库升级(解压包方式)的更多相关文章

  1. 安装Windows 64 位 mysql 最新版本解压包中没有data目录和my-default.ini及服务无法启动的快速解决办法

    mysql官网下载地址:https://dev.mysql.com/downloads/mysql/ 首先安装包解压后,没有网上教程里面提到的data文件夹和my-default.ini 配置环境变量 ...

  2. windows 安装MySQL服务 zip解压程序

    1:配置 my.ini 文件 如下: [mysql] default-character-set=utf8[mysqld] port=3306basedir=D:\\Program Files\\da ...

  3. 【DataBase】 在Windows系统环境 下载和安装 解压版MySQL数据库

    MySQL官网解压版下载地址:https://dev.mysql.com/downloads/mysql/ 为什么不推荐使用安装版?无脑下一步,很多配置的东西学习不到了 点选第一个就好了,下面的是调试 ...

  4. MySQL解压包的安装教程

    一.下载MySQL解压包 解压过的文件夹里面是没有 data 文件夹的. 二.创建文件 1.在根目录下创建 my.ini文件 内容如下: [mysqld] # 设置mysql的安装目录 basedir ...

  5. MySQL 5.7 解压版 安装教程(图文详细)[Windows]

    最近在学习中用到了MySQL数据库,在安装过程中遇到了不少问题,在翻了大半天百度后,问题基本都解决了,所以写一篇MySQL 5.7 解压版的图文详细安装教程. 至于为什么我会选择解压版而不是安装版,一 ...

  6. windows安装mysql数据库并修改密码

    1.下载 MySQL Community Server https://dev.mysql.com/downloads/mysql/ 2.解压 如果想要让MySQL安装在指定目录,那么就将解压后的文件 ...

  7. mysql5.7解压包安装教程

    下载mysql5.7解压包Download MySQL Community Server,解压文件.https://dev.mysql.com/downloads/mysql/ 步骤1:新建my.in ...

  8. Mysql 5.6 解压版配置方案

    # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-co ...

  9. SQLServer 远程链接MySql数据库详解

    SQLServer 远程链接MySql数据库详解 by:授客 QQ:1033553122 测试环境: Microsoft Windows XP Professional 版本2000 Service ...

  10. tar解压包的时候出现错误 gzip: stdin: not in gzip format

    在Linux环境下,通过tar -zxvf 命令解压文件时遇到”gzip: stdin: not in gzip format“等错误:如图所示 root@cmfchina:/usr/java# ta ...

随机推荐

  1. 浅析REGEXP_SUBSTR,PRIOR,CONNECT BY

    业务场景 teacher表中的tech_class字段存储的是每个老师所教授的课程,课程之间以英文逗号分隔.现在要用语句统计每个课程对应的教师数量.语句及效果如下: 语句其实很简单,各种博客或者gpt ...

  2. (Python基础教程之十八)Python字典交集–比较两个字典

    Python示例,用于查找2个或更多词典之间的常见项目,即字典相交项目. 1.使用"&"运算符的字典交集 最简单的方法是查找键,值或项的交集,即 & 在两个字典之间 ...

  3. 基于 JUnit 的全局单元测试程序

    在 Java 程序中,JUnit 是备受开发人员喜爱的单元测试工具.通常,程序员会对每个程序的每个模块写单元测试.对于小型程序来说,程序员只需要手工执行这些单元测试程序就可以,工作量并不大,但是对于中 ...

  4. .NET9 EFcore支持早期MSSQL数据库 ROW_NUMBER()分页

    前言 NET程序员是很幸福的,MS在上个月发布了NET9.0RTM,带来了不少的新特性,但是呢,我们是不是还有很多同学软硬件都还没更上,比如,自己的电脑还在跑Win7,公司服务器还在跑MSSQL200 ...

  5. Lambda【1】-- List相关Lambda表达式使用(上篇)

    Lambda在jdk1.8里面已经很好用了,在这里不讲底层的实现,只有简单的用法,会继续补全. 首先一个list我们要使用lambda的话,需要使用它的stream()方法,获取流,才能使用后续的方法 ...

  6. JAVA WEB和Tomcat各组件概念

    概述 本篇文章是https://juejin.cn/post/7055306172265414663,这篇文章的再总结,剔除了与Java安全研究没太大关系的内容,对JAVAWEB中的Servlet.F ...

  7. 震惊!推荐一款AI驱动的自动化测试神器:TestCraft

    在当今快速迭代的软件开发环境中,自动化测试已经成为确保软件质量的重要一环.然而,传统的手动录制和编写测试脚本的方式不仅耗时耗力,还难以跟上敏捷开发的节奏. 本文将为大家介绍一款基于AI技术的自动化测试 ...

  8. C#中使用IMemoryCache实现内存缓存

    1 缓存基础知识 缓存是实际工作中非常常用的一种提高性能的方法. 缓存可以减少生成内容所需的工作,从而显著提高应用程序的性能和可伸缩性. 缓存最适用于不经常更改的数据. 通过缓存,可以比从原始数据源返 ...

  9. Java基础 —— 集合(二)

    Collection 接口 Collection接口常用方法 boolean add(E e):在集合末尾添加元素 boolean remove(Object o):若集合中存在与o相同的元素,则删除 ...

  10. VS C++ 出现debug assertion failed弹框,怎么定位代码

    当VS C++ 出现debug assertion failed弹框时,想定位代码,但是按弹框出现的3个按钮都不能定位代码,这个时候,你需要打开VS界面,暂停调试,然后打开函数调用栈,找到最后执行的函 ...