Docker容器升级MySQL

目录

服务升级

密码重置

1、找到挂载配置文件

2、重启服务

3、容器交互

4、修改密码

5、还原配置文件

前言:

由于项目需要,我们使用docker-compose启动的MySQL服务,原先版本为5.7.3,在服务扫描过程中,发现此版本的MySQL存在漏洞,遂决定对MySQL版本进行升级。

服务升级

由于库中数据还存在不少,我们并没有把原先MySQL的容器进行删除重新搞个新的,只是升级版本可以做到无痛割接。

Docker容器升级MySQL_第1张图片

由于我的MySQL也是进行了数据挂载,在compose.yml文件中调整进行版本后,把版本替换后即可完成升级。

docker-compose stop mysql

docker-compose -f ./docker-compose.yml up -d 

以上命令完成了,服务镜像版本的升级(没有版本信息变动的不受影响)

服务升级后发现原来的账号密码不能进行远程访问了,遂一顿百度发现由于是MySQL8版本密码加密方式不同导致需要对密码重置。

密码重置

Docker容器升级MySQL_第2张图片

1、找到挂载配置文件

# 跳过密码登录

skip-grant-tables

2、重启服务

  docker-compose restart mysql

3、容器交互

#   f7942b14ef93为容器id

docker exec -it  f7942b14ef93 /bin/bash

4、修改密码

直接点击Enter会进入到数据库中。

Docker容器升级MySQL_第3张图片

其中:

#@之后对的‘%’根据你的实际情况来,有些人是localhost。

# caching_sha2_password为mysql8默认验证插件,mysql_native_password为mysql5的默认验证插件 

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> flush privileges;
Query OK, 0 rows affected (0.07 sec)

mysql> alter user 'root'@'%' IDENTIFIED WITH caching_sha2_password BY '123456xxx';  
Query OK, 0 rows affected (0.06 sec)

mysql> exit;

5、还原配置文件

找到挂载MySQL配置文件,去除skip-grant-tables后,重启MySQL容器即可

你可能感兴趣的:(docker,mysql,容器)