【原创】docker容器连不上宿主机mysql解决办法

一、docker和宿主机网络

  1. 在docker容器里localhost并不是指宿主机的localhost
  2. 在docker运行时就和宿主机建立了虚拟网卡,可以通过ifconfig查看,会发现多了一个docker0,一般ip为172.17.0.1,它就是宿主机建立的网桥,用于与各个容器之间通信
【原创】docker容器连不上宿主机mysql解决办法

 二、docker连接宿主机mysql

  1. 先修改mysql的授权,允许其他ip连接mysql
#登录
mysql -uroot -p
#授权
grant all privileges on *.* to root@"%" identified by '你的root账户密码' with grant option;
#刷新权限
flush privileges;

     注意!!!

  • 不要复制代码直接粘贴!请把上述代码中你的root账户密码换成自己的

      2. 修改docker容器里连接数据库配置,将连接ip改为docker0 的ip:172.17.0.1

三、若宿主机防火墙firewalld是开启状态

使用 docker,出现 No route to host 这个问题
或者宿主机使用docker运行了nginx, nginx又将后台代理到宿主
将docker0添加到防火墙白名单

firewall-cmd --permanent --zone=trusted --change-interface=docker0

完毕!

给TA打赏
共{{data.count}}人
人已打赏
webos常见问题

【原创】解决云服务器nginx反向代理webos源地址ip改变无法访问

2023-2-9 16:53:01

webos常见问题

webos测试版1.21,数据库切换问题(需要注意的几点)

2023-2-9 17:04:40

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索