环境

  • Mysql版本:8.0
  • 操作系统:CentOS 7

适用场景

使用Docker拉取的Mysql并启动的Mysql容器,这个时候如果需要跳过Mysql密码验证,网上流传的最多的就是在Mysql的配置文件my.cnf中添加一行代码,但是这个仅仅是在非Docker容器运行的Mysql使用,如果你的Mysql使用的Docker容器执行的,按照网上修改并无任何作用,甚至找不到my.cnf,废话不多说看操作

解决办法

1.找到docker.cnf

执行命令

find / -name docker.cnf

如果出现多个,选择带有merged这个

2.编辑docker.cnf

紧接着使用vim编辑docker.cnf文件,在最后一行添加skip-grant-tables 保存并退出 执行命令

vim /你的路径/docker.cnf

3.重启Mysql容器

执行命令

docker restart mysql(改成你的mysql容器名)

以上已经完成跳过Mysql密码验证!

4.验证

进入容器

docker exec -it mysql(改成你的Mysql容器) bash

进入Mysql,输入完以下命令直接回车即可,恭喜成功进入,接下来就修改密码吧

mysql -u root -p

修改Mysql密码

注意,如果按照正常的修改密码,会提示你,大致意思是你现在处于skip-grant-tables,不能修改,废话不多说看操作,进入Mysql之后,按照下面的步骤 1.选择库

use mysql;

2.先刷新权限

flush privileges;

3.修改密码

SET PASSWORD FOR 'root'@'%' = '123456(这里改成的密码)';

4.再次刷新权限

flush privileges;

搞定!

注意

修改完成密码之后不要忘记把docker.cnf文件中的skip-grant-tables删除!!!然后重复 3.重启Mysql容器!