docker版MySQL升级

@TOC

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版本


在这里插入图片描述
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容