说一下目前的环境,本人在云服务器上的docker部署了mysql近来连接项目发现连不上,报错ERROR 1045 (28000): Access denied for user 'root'@'localhost',网上查阅了各种资料,最后得以解决.

docker exec -it 0787 /bin/bash

进入mysql,注意0787是我这个实例的id

输入账号密码,成功进入数据库

 

下面是最有争议的一步,网上大部分是

grant all privileges on *.* to 'root'@'localhost' identified by 'root' with grant option;

这里条是授权相关的语句也是解决问题的关键,localhost代表的是你的地址 root代表数据库密码,由于是docker容器启动的mysql,我发现这条语句执行完毕并不能解决问题。。。

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
这里把localhost换成了%,意为任何的IP地址

最后刷新

flush privileges;

由此解决问题,mysql连接正常。

更多推荐

docker mysql连接报错ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘解决办