docker升级mysql

一、首选备份原数据库所有数据

二、在Docker中查看正在运行的MySQL容器名称,可以使用以下命令:

docker ps --filter "name=mysql"

三、查看当前docker中正在运行mysql的版本

docker exec -it qgz-mysql mysql -V

可以看到当前运行的版本是8.2.0

使用docker备份数据:

docker exec your-mysql /usr/bin/mysqldump -u root --password=xxxxxx --all-databases > 20240929all_databases_backup.sql

停止原来的mysql

docker stop xxx-mysql

拉取想要的mysql版本

docker pull mysql:8.4.2

创建新的mysql容器:

vbscript 复制代码
docker run --name qgz-mysql842 --restart=always -p 3306:3306 -v /data/mysql/conf.d:/etc/mysql/conf.d -v /data/mysql/data2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yourPassword -d mysql:8.4.2

导入备份数据

cat 20240929all_databases_backup.sql | docker exec -i qgz-mysql842 /usr/bin/mysql -u root --password=xxxxxx

启动新容器,并检查

docker run --name qgz-mysql842 --restart=always -p 3306:3306 -v /data/mysql/conf.d:/etc/mysql/conf.d -v /data/mysql/data2:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxxxx -d mysql:8.4.2

docker logs qgz-mysql842 

查看新部署数据库版本,以确保升级成功:

docker exec -it qgz-mysql842 mysql -V

如果用户有异常,可以

alter user 'root'@'%' identified with caching_sha2_password by 'xxxxxxx';
相关推荐
JH30736 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
吴半杯1 小时前
gateway漏洞(CVE-2022-22947)
docker·kubernetes·gateway
今天我刷leetcode了吗1 小时前
docker 配置同宿主机共同网段的IP 同时通过通网段的另一个电脑实现远程连接docker
tcp/ip·docker·电脑
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
lwprain2 小时前
常用docker应用部署,wordpress、mysql、tomcat、nginx、redis
mysql·docker·tomcat
斗-匕3 小时前
MySQL 三大日志详解
数据库·mysql·oracle
代码中の快捷键3 小时前
MySQL数据库存储引擎
数据库·mysql
Code_Artist4 小时前
使用Portainer来管理并编排Docker容器
docker·云原生·容器
六月闻君4 小时前
MySQL 报错:1137 - Can‘t reopen table
数据库·mysql
mengao12344 小时前
centos 服务器 docker 使用代理
服务器·docker·centos