我有一个在后端使用 MySQL 数据库的 war 文件。
我已经在一个 docker 容器中部署了我的 war 文件,我可以从我的浏览器中 ping 这个。
我想将我的应用程序与 MySQL 数据库连接起来。此数据库存在于我的主机的 localhost:3306
由于我无法从容器的本地主机内部连接它,所以我尝试的是,
我运行命令 docker inspect --format '{{ .NetworkSettings.IPAddress }}' 213be777a837
这个命令给了我一个 IP 地址 172.17.0.2 .我去了 MySQL 服务器选项并将这个 IP 地址放在绑定(bind)字段中并重新启动服务器。之后,我用 172.17.0.2:3306
更新了我的项目数据库连接字符串。
但它不起作用。谁能告诉我我错过了什么?
我还尝试使用 root@% 添加一个新的数据库用户,然后运行命令允许对 'root@%' 的所有权限,但没有任何效果。
最佳答案
按照步骤:-
docker network create -d bridge --subnet 192.168.0.0/24 --gateway 192.168.0.1 dockernet
docker run -p 8082:8080 --network dockernet -d 6ab907c973d2
in your project set connection string : jdbc:mysql://host.docker.internal:3306/....
然后部署。
关于mysql - 如何将 docker 容器与主机的 localhost mysql 数据库连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61263439/