Mysql忘记密码:强制更改Docker容器中的Mysql密码 - Go语言中文社区

Mysql忘记密码:强制更改Docker容器中的Mysql密码


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

在这里插入图片描述

进入MySQL 容器中

sudo docker exec -it 321459c00aa0 /bin/bash

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

在 docker.cnf 文件中追加  skip-grant-tables

在这里插入图片描述

操作命令如下:
下载容器中的docker.cnf 文件 到宿主主机中

docker cp 321459c00aa0:/etc/mysql/conf.d/docker.cnf /home/

编辑下载的文件追加 skip-grant-tables;

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

在这里插入图片描述
在这里插入图片描述

把编辑好的文件重新上传到MySQL容器中

docker cp /home/docker.cnf 321459c00aa0:/etc/mysql/conf.d/

重新启动MySQL 容器

docker restart 321459c00aa0

进入MySQL容器中

sudo docker exec -it 321459c00aa0 /bin/bash

在这里插入图片描述

密码可不用输入直接回车跳过
接下开就是修改么MySQL 密码的操作了

mysql>  set password for root@localhost = password('123');  

# 刷新权限
mysql>  flush privileges;

# 退出
mysql> quit


如果采用上面的方法修改密码;连接时报错: Access denied for user 'root'@'182.119.227.139' (using password: YES)

那么就采用这种方式修改密码:

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>  UPDATE user SET authentication_string=PASSWORD('123') where USER='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 2  Changed: 1  Warnings: 1

mysql> flush privileges;

最后把在 docker.cnf 文件中追加的 : skip-grant-tables 删除
重启 MySQL容器

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39816332/article/details/103746846
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 19:11:36
  • 阅读 ( 985 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢