目录
服务升级
密码重置
1、找到挂载配置文件
2、重启服务
3、容器交互
4、修改密码
5、还原配置文件
前言:
由于项目需要,我们使用docker-compose启动的MySQL服务,原先版本为5.7.3,在服务扫描过程中,发现此版本的MySQL存在漏洞,遂决定对MySQL版本进行升级。
服务升级
由于库中数据还存在不少,我们并没有把原先MySQL的容器进行删除重新搞个新的,只是升级版本可以做到无痛割接。
由于我的MySQL也是进行了数据挂载,在compose.yml文件中调整进行版本后,把版本替换后即可完成升级。
docker-compose stop mysqldocker-compose -f ./docker-compose.yml up -d
以上命令完成了,服务镜像版本的升级(没有版本信息变动的不受影响)
服务升级后发现原来的账号密码不能进行远程访问了,遂一顿百度发现由于是MySQL8版本密码加密方式不同导致需要对密码重置。
密码重置
1、找到挂载配置文件
# 跳过密码登录
skip-grant-tables
2、重启服务
docker-compose restart mysql
3、容器交互
# f7942b14ef93为容器id
docker exec -it f7942b14ef93 /bin/bash
4、修改密码
直接点击Enter会进入到数据库中。
其中:
#@之后对的‘%’根据你的实际情况来,有些人是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 -ADatabase 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容器即可。