忘记Docker容器中的Mysql密码

忘记Docker容器中的Mysql密码

查看容器

请添加图片描述
docker ps

进入mysql容器

docker exec -it ae235c4ae537/bin/bash

编辑mysql配置文件(增加skip-grant-tables)

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

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

如果遇到异常如下:
请添加图片描述

安装vim:

root@ae235c4ae537:/# apt-get install -y vim

系统异常:E: Unable to locate package vim

root@ae235c4ae537:/# apt-get update

由于下载为海外地址安装失败:
请添加图片描述

解决方法:

root@ae235c4ae537:/#  mv /etc/apt/sources.list /etc/apt/sources.list.bak
root@ae235c4ae537:/#  echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >/etc/apt/sources.list
root@ae235c4ae537:/#  echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
root@ae235c4ae537:/#  echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
root@ae235c4ae537:/#  echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list

接着root@ae235c4ae537:/# apt-get update就能下载成功

接着进入容器

请添加图片描述

docker exec -it ae235c4ae537 /bin/bash
root@ae235c4ae537:/# mysql -u root -p
Enter password:   # 不用输入密码直接回车enter
mysql> use mysql;
update user set authentication_string='' where user="root";
# 如果需要给root用户设置密码
update user set plugin='mysql_native_password' where user='root'; #更改加密方式
alter user 'root'@'localhost' IDENTIFIED BY 'password';#设置密码
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘password’;#设置密码让navicat能够访问
FLUSH PRIVILEGES;
# 退出数据库
mysql> exit

删除mysql中配置信息

root@ae235c4ae537:/# vim /etc/mysql/conf.d/docker.cnf 
# skip-grant-tables

在docker中重启mysql数据库

docker restart ae235c4ae537

版权声明:本文为weixin_46134332原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。