Docker-MySQL忘记密码
banner 2021-03-11 dockerMySQL
# 进入容器
docker exec -it mysql bash
# 设置跳过权限表的加载
# 警告:这就意味着任何用户都能登录进来,并进行任何操作,相当不安全。
echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
# 退出容器
exit
# 重启容器
docker restart mysql
# 再次进入容器
docker exec -it mysql bash
# 登录 mysql(无需密码)
mysql -uroot
# 更新权限
flush privileges;
# 修改密码
alter user 'root'@'%' identified by 'root';
# 退出mysql
exit
# 替换掉刚才加的跳过权限表的加载参数
sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
# 退出容器
exit
# 重启容器
docker restart mysql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mysql> alter user 'root'@'%' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
1
2
2
这个时候我们只需要 mysql> flush privileges;