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容器

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值