Docker连接宿主机的Mysql(windows、mac、linux)

介绍

本文将演示windows、mac、linux系统下,让docker容器连接宿主机的mysql。

通用命令

1.创建数据库zipkin,然后创建表:SQL文件

2.注意添加帐号权限,可以在任何ip上访问。

  1. all privileges包含查询、插入、修改等权限,也可:insert,delete
  2. *.*的第一个*代表所有的数据库,第二个*代表所有的表
  3. root是你登录的账号
  4. %代表所有的ip都可以访问数据库,也可以指定IP,如:127.0.0.1
  5. youpassword代表你访问数据库的密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

windows、mac

宿主机IP

不同于linux,windows和mac都是通过host.docker.internal去连接宿主机。

当你启动了一个web服务,在宿主机localhost:8080/hello的话,就可以通过下面的方式访问。连接mysql把localhost改成host.docker.internal即可。

 $ docker run --rm -it alpine sh
 $ apk add curl
 $ curl http://host.docker.internal:8080/hello
 $ exit

linux

获取到宿主机的ip
docker inspect <container-id-or-name> | grep Gateway
"Gateway": "",
            "IPv6Gateway": "",
            "Gateway": "172.18.0.1",
            "IPv6Gateway": "",

对于docker应用程序内部,MySQL的指向宿主机的172.18.0.1:3306

注意MySQL监听

1.查找mysql文件

sudo find / -name my.cnf

2.修改my.cnf 配置
找到bind-address修改成0.0.0.0(有安全问题,仅测试使用)或172.18.0.1。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值