一、背景
出于安全考虑需将MySQL 8.0 升级到 8.4 版本,特此备忘。
二、过程
(1)业务数据的备份(略)。
(2)升级【身份验证插件】:
- 8.4不再支持配置项【default_authentication_plugin】,且默认禁用插件【mysql_native_password】,要求使用【caching_sha2_password 】。
- 在 8.0 中升级用户的插件:通过表【mysql.user】列【plugin】,可知有哪些用户还在使用【mysql_native_password】插件,并予以升级。
sql
ALTER USER 'xxx1'@'xxx2' IDENTIFIED WITH caching_sha2_password BY 'xxx3';
FLUSH PRIVILEGES;
其中,xxx1用列【User】值,xxx2用列【Host】值,例如:'root'@'%';xxx3是密码。
执行之后,可以看到表【mysql.user】的列【plugin】和【authentication_string】发生更新。
(3)关停并注销MySQL 8.0的服务。
bash
net stop mysql
sc delete mysql
关停之后,即可以备份目录名。
(4)获取MySQL 8.4社区版(MySQL Community Server)
从 官网 字样 "MySQL Community Server" 的链接进入到下载页。
选择8.4.x(截至2026-7-15,最新版本为10)的zip文件即可(形如:mysql-8.4.10-winx64.zip)。
(5)安装
- 新的安装包仍旧是解压安装,目录名可与8.0相同。
- 将原 my.ini 和 DATA 目录复制到新位置。
- 修改 mysql的配置文件 my.ini。
屏蔽配置项【default_authentication_plugin】。
添加配置项【mysql_native_password】并设置值为OFF。
bash
mysql_native_password=OFF
(6)注册服务及启动服务
bash
mysqld --install <服务名> # 安装服务,默认服务名为mysql
net start <服务名> # 启动服务
(7)客户端连接测试
三、结论
MySQL 8.0升级到8.4,主要的修改点是【身份验证插件】,不仅要改配置文件还有mysql数据库。要求将插件一步到位地设置为【caching_sha2_password】即可。
相关文章
【完】