admin 管理员组文章数量: 1184232
介绍
本文将演示windows、mac、linux系统下,让docker容器连接宿主机的mysql。
通用命令
1.创建数据库zipkin,然后创建表:SQL文件
2.注意添加帐号权限,可以在任何ip上访问。
- all privileges包含查询、插入、修改等权限,也可:insert,delete
- *.*的第一个*代表所有的数据库,第二个*代表所有的表
- root是你登录的账号
- %代表所有的ip都可以访问数据库,也可以指定IP,如:127.0.0.1
- 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 myf
2.修改myf 配置
找到bind-address修改成0.0.0.0(有安全问题,仅测试使用)或172.18.0.1。
本文标签: 宿主 MySQL docker Linux Mac
版权声明:本文标题:Docker连接宿主机的Mysql(windows、mac、linux) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1766066096a3433845.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论