背景:使用docker安装mysql5.7安装成功以后,本地navicat无法连接,服务器上连接也一直拒绝ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
解决方法:
假设你现在已经在你的宿主机了
进入docker_for_mysql 这个容器
docker exec -it mysql bash
在使用命令行登录 MySQL 时出现了下述问题:
或:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
出错原因
using password: NO
:表示输入没有输入密码就尝试登陆了using password: YES
:表示输入了密码,但密码错误
所以,很有可能是忘记密码了,因此需要重设密码。
跳过密码:
进入配置文件,找到 [mysqld],在其下面任意一行添加 skip-grant-tables
,保存,如下图所示:
vim /etc/my.cnf
保存后重新mysql服务
这时密码不用输入,直接回车即可进入
为root用户赋予外部访问权限
grant all privileges on *.* to root@'%' identified by '123456' with grant option;
显示OK代表执行成功
刷新权限
flush privileges;
输入exit退出
最后 你再用工具连接测试 发现一切正常了。