docker mysql 忘记了密码
将docker 中的mysql 配置文件拷贝到外部
docker cp mysql:/etc/mysql/my.cnf /home
修改配置文件
[mysqld]
# 添加这三行
skip-host-cache
skip-name-resolve
skip-grant-tables
#----------
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Custom config should go here
!includedir /etc/mysql/conf.d/
将该配置文件覆盖docker 中mysql 的配置文件(最好在容器里面做个备份)
docker cp my.cnf mysql-liandi:/etc/mysql
重启容器
docker restart mysql
进入目标容器
docker exec -it mysql bash
无密码进入root 账户数据库
mysql -uroot -p
回车进入
mysql中的操作
将密码重置为空密码
update user set authentication_string='' where user='root';
生效配置
flush privileges;
重置新密码(开启远程连接)
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
flush privileges;
exit;
退出容器,将skip-grant-tables注释,重启mysql容器
exit;
docker restart mysql;
测试验证