【问题标题】:having issues while connecting tomcat to mysql in a docker container?在 docker 容器中将 tomcat 连接到 mysql 时遇到问题?
【发布时间】:2017-11-02 01:48:39
【问题描述】:

我有 2 个通过 docker-swarm 创建的 docker 服务。

一个是Tomcat,另一个是mysql,我正在尝试从tomcat连接到mysql,两者都在不同的容器中。

这是我在 tomcat 容器中的hibernate.cfg.xml

<property name="connection.url">
            jdbc:mysql://localhost:3306/travelbiz
        </property>
        <property name="connection.username">trvlbz_admin</property>
        <property name="connection.password">admin123</property>

这是正在运行的服务

root@ubuntu:/home/smadmin# docker ps
CONTAINER ID        IMAGE                                                                                                 COMMAND                  CREATED             STATUS              PORTS               NAMES
2ecb386d9bbc        cloudesire/tomcat@sha256:19e24a2290e4c3253a44d65243a54c520e9f8e0fe0edf3a5221ccc67cf9da0f8             "/run.sh"                7 hours ago         Up 7 hours          8080/tcp            apache.2.1ftla1ohbnjgax7ibk8fbh5hz
4e940f3be18d        vishnuranganathan/vishmysql@sha256:4460004d01c9a23d4c80ea2a9d7a69fc1495cbe01b48555cf28bd73a535176d1   "/usr/bin/mysqld_safe"   7 hours ago         Up 7 hours          3306/tcp            mysql.1.hjoba4bsrl8lujfumc6qru3uq

我在尝试通过 tomcat 访问时遇到 mysql connection denied 异常。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 你检查容器中的mysql配置是否允许外部连接?它将在 my.cnf 文件中,配置为 bind_address 0.0.0.0 或删除它。
  • @JorgeCampos 是的,我更改为 0.0.0.0 仍然是同样的问题,在 tomcat 容器的 hibernate.cfg.xml 中: jdbc:mysql://localhost:3306 /travelbiz 应该是 localhost (or) host-ip (or) mysql-container-id ??
  • localhost 那是你的问题。应该是mysql容器的IP地址,不是localhost。
  • @JorgeCampos Mysql 容器 ip 工作谢谢
  • 很高兴为您提供帮助:)

标签: mysql docker tomcat8 docker-swarm


【解决方案1】:

您不想使用 mysql 容器的 ip 地址,因为下次启动新的 mysql 容器或如果您碰巧扩展它时,它必然会更改(尽管使用 mysql 可能不容易)。理想情况下,您应该使用容器的名称。当您启动容器时,您将使用 docker run,请确保添加 --name mysql,然后使用 mysql 而不是 IP 地址。

【讨论】:

  • 是的,我同意你的观点 Anoop。我正在使用 Swarm 来启动容器,而不是使用 docker run 命令。当我使用 Docker-swarm 时,我可以使用服务名称而不是容器名称吗??
  • 是的,当然。使用服务名称非常有用,因为您可能正在扩展服务以拥有多个副本。无论您拥有多少副本,您都希望一个服务名称能够访问。
猜你喜欢
  • 2017-05-23
  • 2022-01-05
  • 2016-06-01
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 2017-12-12
相关资源
最近更新 更多