修改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