【发布时间】: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