忘记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