通过docker修改mysql的账号密码


如果你的mysql是用过docker创建的,但是你的密码你忘记了那么下面这篇文章将会帮你重置密码。

一、通过命令查看运行在docker中的mysql容器

docker ps | grep mysql

#如果没有启动的话用下面命令将镜像启动起来
docker start imageID

命令执行结果如下图,其中【3f115493edfd】是mysq的容器id
在这里插入图片描述
二、通过容器id进入容器内

docker exec -it 3f115493edfd /bin/bash

进入容器后长这个样子:
在这里插入图片描述
三、用vim编辑mysql配置文件(由于mysql镜像中默认没有安装vi或vim,需要先更新apt然后再安装vim,其实在这里的mysql容器就相当与一个独立的操作)

PS: docker容器实际上就是运行的一个进程,只不过由于docker帮助我们包装了这个进程,给这个进程加以一个可运行的微linux环境而已,让我们感觉看起来"像"虚拟机而已,所以说一个新的环境是没有安装vim的需要自己安装才能编辑文件。

#更新apt命令
apt-get update

#安装vim命令
apt-get install vim

执行结果如下图:(因为我已经更新并且安装过了,所以显示的内容会和没有更新安装过的xd是不太一样的)
通过docker修改mysql的账号密码_第1张图片
接下来就开始编辑mysql的配置文件,执行下面命令进行编辑

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

# 在mysql配置文件中添加:skip-grant-tables

该配置并不是开始时就存在的,因为我用过了所以注释掉了
通过docker修改mysql的账号密码_第2张图片
四、退出容器并重启容器

#容器内输入命令exit退出
exit

#重启容器
docker restart 3f115493edfd 

五、重新后进入mysql容器,登录mysql

#进入容器
docker exec -it 3f115493edfd /bin/bash

#进入mysql
mysql -u root -p

#输入密码,因为设置了跳过验证所以这里不用输入密码直接回车enter即可
Enter password:   

#进入mysql数据库
use mysql;

#更改加密方式
update user set plugin='mysql_native_password' where user='root'; 

#设置密码
alter user 'root'@'localhost' IDENTIFIED BY '123456';

#刷新权限表
flush PRIVILEGES;

#退出数据库
exit

六、注释或删除刚才在mysql中的配置文件添加的语句

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

# skip-grant-table

七、在docker中重启mysql容器即可

docker restart 3f115493edfd 

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