【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)

问题描述

使用docker容器时,通过镜像安装了Mysql5.6版本,但忘记了root密码,需要重新设置root密码

 

解决步骤

1. 增加“忘记密码启动”模式

2. 重新设置root密码

3. 删掉“忘记密码启动”模式

4. 重启容器镜像即可

 

具体操作

1. 通过docker exec命令进入容器内

docker exec -it db002 /bin/sh

注:db002是我安装mysql数据库的容器名

 

2. 编辑mysql配置文件,增加“忘记密码启动”模式:skip-grant-tables

vi /etc/mysql/conf.d/docker.cnf

注:编辑的配置文件不是/etc/mysql/my.cnf,也不是/etc/mysql/mysql.cnf或/etc/mysql/conf.d/mysql.cnf

最终配置文件docker.cnf内容如下:

[mysqld]
skip-host-cache
skip-name-resolve
skip-grant-tables

操作图参考:

【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)_第1张图片

 

3. 退出容器,重启容器实例

操作图参考:

【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)_第2张图片

 

4. 通过步骤1再次进入容器,输入myql命令,免密码直接登录mysql

操作图参考:

【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)_第3张图片

5. 设置root用户新密码:a123456。刷新权限,退出mysql

#切换实例,user表位于mysql实例下
mysql> use mysql;
#更改root密码
mysql> UPDATE user SET Password = password ( 'a123456' ) WHERE User = 'root';
# 刷新权限
mysql> flush privileges;
# 退出
mysql> quit

操作图参考:

【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)_第4张图片

6. 重新编辑mysql配置文件docker.cnf,删掉“忘记密码启动”模式

vi /etc/mysql/conf.d/docker.cnf

7. 退出容器重启容器即可

docker restart db002

 

参考资料

1. docker mysql官方资料:https://hub.docker.com/_/mysql

2. Mysql之重置密码、忘记密码:https://blog.csdn.net/yelllowcong/article/details/79641313

3. Docker常用命令:https://blog.csdn.net/hemin1003/article/details/52812978

4. 如何在Docker容器中安装vim工具:https://blog.csdn.net/hemin1003/article/details/89633609

5. Docker系列~安装MySQL(五):https://blog.csdn.net/hemin1003/article/details/52808736

 

 

------------------------------------------------------

------------------------------------------------------

 

关于我(个人域名)

我的开源项目集Github

 

期望和大家一起学习,共同进步,共勉,O(∩_∩)O谢谢

欢迎交流问题,可加个人QQ 469580884,

或者,加我的群号 751925591,一起探讨交流问题

不讲虚的,只做实干家

Talk is cheap,show me the code

【踩坑】如何强制更改Docker容器中的Mysql密码(忘记密码)_第5张图片

你可能感兴趣的:(Docker,数据库优化,数据库管理)