搞了2个下午,总算成功了
我在服务器上使用docker部署了java项目与mysql,但mysql连接一直出现问题

1.首先,我使用的是localhost连接,心想反正都在服务器上吧。
jdbc:mysql://localhost:3306/fly-bird?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&rewriteBatchedStatements=true
因为localhost
指的是当前计算机,服务是用一个个的docker部署的,localhost定位不到
2.我尝试使用我的服务器IP地址进行连接,心想反正映射了吧,我本地使用datagrip可以连上
jdbc:mysql://183.224.167.31:3306/fly-bird?useSSL=false&serverTimezone=Asia/Shanghai&
但是连接仍然失败。
即使DataGrip可以从本地连接到183.224.167.31:3306
,也需要确保运行应用程序的Docker容器(e6e66e63f529
)可以访问这个地址。 由于应用程序容器和MySQL容器位于不同的Docker网络中,应用程序容器可能无法直接访问宿主机的183.224.167.31
地址。
3.我就开始将容器连接到同一个Docker网络。成功了,重新打包部署,因为我的yml是在dockerfile直接复制的,不是读取的。
jdbc:mysql://172.24.0.5:3306/fly-bird?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&rewriteBatchedStatements=true