文章目录
前言
在使用docker创建mysql容器使用时,有时候会在进入容器后登录时出现拒绝访问的情况,比如Access denied for user ‘root‘@‘localhost‘ (using password: YES),可以使用以下方法尝试解决
一、跳过mysql登录验证
1. 进入mysql的容器中,找到/etc/mysql/conf.d/docker.cnf文件 2. 在docker容器中安装vim(我有篇博客讲到了vim的安装),对docker.cnf文件进行编辑,添加一行skip-grant-tables,添加完成之后别忘记将mysql容器restart以下 ![在这里插入图片描述](https://img-blog.csdnimg.cn/558d10b8ca7b49ae836d9f4dbe15ea5f.png#pic_center)二、进入mysql
在第一步的基础上我们这时可以直接输入mysql 进入mysql的命令行,然后执行mysql的修改密码语句,这时需要注意不同版本的mysql可以需要不同的修改密码的执行语句,我这里使用的mysql是8.0.29版本,
- 执行修改密码之前先刷新下权限,不然可能会提示在skip-grant-tables模式下无法修改密码
flush privileges;
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- 刷新权限
flush privileges;
- 修改完成,这时就需要将我们在第一步添加的skip-grant-tables删除掉,然后在restart mysql容器以下
- 这时就可以用新密码进行登录了
- 还有一种方法可以试以下,好像只输入用户名直接登录可以登录进去在这种情况下…然后在修改密码进行登录
问题三 Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
- 我用的是docker容器,重启以下容器就好了,如果不行多重启几下就好了
问题四 修改登录主机
update user set host = '%' where user = 'root';
总结
加油噢!