今天安全扫描发现MySQL存在漏洞,不用想别的升级到最新版。本篇文章有两个目的,1)为自己做一个记录,下次升级的时候不用再浪费时间查资料;2)给大家一点帮助;
因为我是docker部署,所以升级相对简单,最麻烦的步骤就是找MySQL镜像了。
找了好多都不能使用,最后发现k8s中有一个能用的。
开始:总体分为3步,1、备份;2、拉取镜像;3、运行镜像并将备份数据导入。
一、备份
首先登陆进docker中的MySQL控制台
docker exec -it 镜像ID sh
接下来执行mysqldump命令备份库表
mysqldump -uroot -p *** 库名 > ***.sql
退出mysql控制台
执行docker cp 镜像ID:***.sql文件(要绝对路径) ./
二、拉取镜像
这是我找到的镜像网址:docker.io/mysql 项目中国可用镜像列表 | 高速可靠的 Docker 镜像资源 (aityp.com)
在网站中找到你需要的版本,执行如下命令,命令中的最后一行就是镜像的地址,见下图。
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.4.2
三、运行并导入数据
docker run -d -p 3306:3306 --privileged=true -e MYSQL_ROOT_PASSWORD= --restart always --name mysql swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.4.2
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
四、导入数据
再次登陆到MySQL控制台,执行mysql -u root -p 库名<****.sql
注意:需要的库要先创建好,否则无法导入成功。