docker部署微服务

微服务访问docker中的mysql容器,查看日志发现Access denied for user ‘root‘@‘某IP地址‘ (using password: YES)

前提条件:我在微服务中连接mysql时提供的用户名和密码均是root

猜想1:微服务中application.yml中提供的root密码和数据库不符

矛盾点:部署微服务时,docker-compose.yml中mysql容器的环境配置有明确写上用户密码为root
验证:进入mysql容器内部,使用root密码登录数据库,发现登录不上去
出现矛盾可能原因:我在创建mysql容器时,将包含数据库文件的数据卷挂载到了mysql容器中的/var/lib/mysql,而数据库mysql中user表有记录用户密码等信息,覆盖了我在docker-compose.yml中mysql容器上的环境配置所设置的密码
解决方案:进入mysql容器,登录mysql,数据库里手动修改用户密码
ps:由于我是修改别人的数据库后出现问题,所以我知道原始密码

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

结果:问题仍然未解决。。。

猜想2:我在数据库里修改用户密码时,没改对,改的时候是对用户root@localhost所做的更改,而另一个微服务ip地址压根就不是mysql容器的ip地址

:在微服务中远程登录mysql需要进行各种校验,而这些校验发生在mysql的连接层
解决:对mysql中用户root@%(这里的的%是指允许所有远程主机访问)修改密码,修改为root
结果:微服务正常访问mysql!!!!!!!!!!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值