MySQL8.0.20 升级到8.0.22

docker版MySQL8.0.20升级到8.0.22
停止旧的mysql容器

docker stop mysql8.0.20-test

为了稳妥起见,先备份数据库。

cp -rf mysql mysqlbak

拉取新的

docker pull mysql:8.0.22

启动新的

docker run --name=mysql8.0.22-test \
   -p 3306:3306 \
   --privileged=true \
   --mount type=bind,src=/data/mysql/config/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
   --restart=always \
   -d mysql:8.0.22

重新启动完成升级

docker restart mysql8.0.22

按照官网说法,对于8.0.15及之前的版本,需要执行一下升级程序。然后再重新启动容器完成升级

docker exec -it mysql80 mysql_upgrade -uroot -p

其中密码为旧版本的root密码。升级完成后再重启容器。
在这里插入图片描述

MySQL5.7.32升级到MySQL8.0.22

对于5.7升级到8,查看了官网关于升级的操作,有篇文章必须要看,另外升级之前必须要备份
我做了一个测试,docker启动mysql5.7.32.然后进行升级
升级完毕restart。升级到8.0.22后可以正常使用。配置比较少。
个人感觉需要先阅读官网的文章,MySQL升级篇。写的很详细。摘取一点。另外注意不能跨版本升级
如果你是5.7.1x或者5.7.2x。建议先升级到5.7.3x。多读读官网还是有很好的帮助效果。虽然都是英文,不过Google浏览器可以翻译啊。官方链接
在这里插入图片描述
在这里插入图片描述
先拉取两个版本的镜像

docker pull mysql:5.7.32
docker pull mysql:8.0.22

创建5.7容器

docker run --name=mysql5.7.32 \
   -p 3306:3306 \
   --privileged=true \
   --mount type=bind,src=/data/mysql/conf/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
   --restart=always \
   -e MYSQL_ROOT_PASSWORD=DX_xx1234 \
   -d mysql:5.7.32

navicat连接创建数据库导入数据。使用没问题,数据库备份一下,预防升级失败
开始升级。
停止旧的容器

docker stop mysql5.7.32

升级容器

docker run --name=mysql8.0.22 \
   -p 3306:3306 \
   --privileged=true \
   --mount type=bind,src=/data/mysql/conf/my.cnf,dst=/etc/my.cnf \
   --mount type=bind,src=/data/mysql/data,dst=/var/lib/mysql \
   --restart=always \
   -d mysql:8.0.22

重启,确保升级正常

docker restart mysql8.0.22

navicat 连接,已变成8.0.22版本
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐