说明:
5.7.31 升级至 5.7.38,修复部分版本漏洞。
这篇采用物理冷备份迁移升级方式,面对的场景是将数据库软件和数据存放路径安装在了Windows操作系统的C盘(系统盘),而且数据量非常小(参考小于5G~30G),停机时间很宽裕(参考3小时~6小时),才可采用以下方法。
数据量大,停机时间短的业务场景后续将推出文章进行测试和描述。
在源端数据库(C盘)里造点测试数据,方便升级迁移以后验证。

创建个登录测试账户。

造点测试数据。
一、拷贝 5.7.38 软件包并解压到正确的位置上

你可千万别覆盖了源端(生产环境)!!!
你可千万别覆盖了源端(生产环境)!!!
你可千万别覆盖了源端(生产环境)!!!

这次我们解压到D盘路径下,解决系统盘上的压力。

二、停服务停库,做好全量备份、回退机制

Windows 系统直接通过服务进行启停。

备份压缩全量数据
备份记录并删除源端(C盘)的 MySQL 服务

备份记录下来执行路径,生产环境后面会带参数。


删除原服务。

修改系统环境变量,%MYSQL_HOME%

三、拷贝迁移数据文件和配置文件

从 C 盘拷贝至 D 盘路径下

别忘了还有一个 uploads 文件夹 。

修改 my.ini 配置文件里的新路径。
四、安装并启动 MySQL 服务

以管理员身份运行。

服务安装以后启动的时候报错。

查看服务的属性,可以看到执行路径不对。

修改服务执行路径和启动项。
"HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / services"
找到 MySQL57的服务,修改 ImagePath。

D:\MySQL57\mysql-5.7.38-winx64\bin\mysqld --defaults-file="D:\MySQL57\mysql-5.7.38-winx64\my.ini" MySQL57

服务正常启动。
五、MySQL 升级和检查

mysql_upgrade -uroot -p123456
关闭并重启 MySQL


select @@version;

show global variables like '%basedir%';
show global variables like '%datadir%';

系统账户和业务数据迁移也没问题。