在 docker 容器中将 tomcat 连接到 mysql 时遇到问题?
having issues while connecting tomcat to mysql in a docker container?
我通过 docker-swarm 创建了 2 个 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.can 访问时收到 mysql 连接被拒绝的异常 有人帮我解决这个问题吗?
您不想使用 mysql 容器的 IP 地址,因为在下次启动新的 mysql 容器或您碰巧对其进行缩放时,该地址必然会发生变化(可能不过 mysql 并不容易)。理想情况下,您应该使用容器的名称。当你调出容器时,你会使用 docker run
,确保添加 --name mysql
然后使用 mysql
而不是 ip 地址。
我通过 docker-swarm 创建了 2 个 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.can 访问时收到 mysql 连接被拒绝的异常 有人帮我解决这个问题吗?
您不想使用 mysql 容器的 IP 地址,因为在下次启动新的 mysql 容器或您碰巧对其进行缩放时,该地址必然会发生变化(可能不过 mysql 并不容易)。理想情况下,您应该使用容器的名称。当你调出容器时,你会使用 docker run
,确保添加 --name mysql
然后使用 mysql
而不是 ip 地址。