当前位置:   article > 正文

docker容器访问宿主机mysql数据库_docker访问宿主机mysql

docker访问宿主机mysql
  1. docker容器内的localhost并不是指宿主机的localhost

  2. docker在运行时就建立了虚拟网卡,并命名为docker0,在宿主机ifconfig可以看到网桥的ip是172.17.0.1(不同机器或者docker版本ip可能不同,需要查下自己的是多少.)

  1. 在容器内通过172.17.0.1:3306访问宿主机的mysql
    1. $ docker exec -it 8686d3dda02c /bin/sh
    2. $ mysql -ushowx -p --database showx -P3306 -h172.17.0.1 #可以看到连上了,只是ip没有访问授权
    3. ERROR 1130 (HY000): Host '172.17.0.2' is not allowed to connect to this MySQL server

2.设置宿主机mysql允许docker0的虚拟网卡ip访问

  1. # 宿主机mysql设置允许用户showx通过172.17.0.2访问showx数据库的任意表
  2. $ mysql -uroot -p
  3. mysql>GRANT ALL PRIVILEGES ON showx.* TO 'showx'@'172.17.0.2' IDENTIFIED BY 'password' WITH GRANT OPTION;
  4. mysql>flush privileges;
  5. # docker内测试docker0 ip链接
  6. $ docker exec -it 8686d3dda02c /bin/sh
  7. $ mysql -ushowx -p --database showx -P3306 -h172.17.0.1
  8. MySQL [showx]>
  1. 修改容器web服务的db ip配置即可
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/477217
推荐阅读
相关标签
  

闽ICP备14008679号