修改docker中mysql登入密码(包括容器内和本地远程登入的密码)

查看docker中正在运行的容器
docker ps

 

 

 

 

进入MySQL 容器中

sudo docker exec -it cd800a1cd503 /bin/bash

在容器中: /etc/mysql/conf.d/  下有 docker.cnf 文件

在 docker.cnf 文件中追加  skip-grant-tables    这一步为了安全起见先把容器内的配置文件拷贝到宿主机中,命令如下:
docker cp cd800a1cd503:/etc/mysql/conf.d/docker.cnf /home/

然后打开Xftp,进入到home文件夹中就能看到docker.cnf文件了,打开它,
在文件中最后一行追加  skip-grant-tables     记得保存,然后再把文件推送到容器内,命令如下:
docker cp /home/docker.cnf cd800a1cd503:/etc/mysql/conf.d/

 

 

再进入MySQL容器中,输入myql命令,免密码直接登录mysql

sudo docker exec -it cd800a1cd503 /bin/bash

 

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

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

 

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

删除: skip-grant-tables

最后再把文件推送到容器内,重启mysql容器,现在容器内和远程登入的密码是一致性了!

如果之前您误操作导致容器启动不起来,请看我上一篇文章:https://www.cnblogs.com/javagg/p/13066849.html

 

posted @ 2020-06-13 09:46  一个九零後的程序猿  阅读(5550)  评论(0编辑  收藏  举报