Springboot 项目部署到 docker 无法连通数据库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
puremaker
V2EX    Java

Springboot 项目部署到 docker 无法连通数据库

  •  
  •   puremaker 27 天前 1223 次点击

    macbook 装了 orbstrack ,用 docker 部署了 mysql 、redis 和 centos 。

    我现在有两个 springboot 项目,这两个项目本地开发连接 docker 的 mysql 都没有问题。

    然后都部署到同一个 centos 虚拟机里,都使用的是本电脑的局域网 ip 连接的数据库,一个可以正常访问到数据库,一个就访问不到,确认了链接 url 除了库名都是一样的,想请教一下这能是什么原因呢?

    puremaker
        1
    puremaker  
    OP
       27 天前
    并且有问题的这个项目连接到 redis 是正常的。redis 和 mysql 是同一个 ip 地址,映射的不同端口
    wangxin3
        2
    wangxin3  
       27 天前
    1 、连不上提示什么?
    2 、一个项目一个项目试试呢,别同时启动两个。
    3 、你这套娃也太狠了 在 centos 里面再装个 docker 呢
    stinkytofux
        3
    stinkytofux  
       27 天前
    mysql 新建数据库的时候是有访问权限的, 需要指定本机访问还是所有人访问, 默认本机访问拒绝外部访问, 既然只是库名不一样导致的问题, 很可能是有问题的库权限的问题, 你可以用 shell 登录到 mysql 检查一下.
    howfree
        4
    howfree  
       27 天前
    看 network 是不是同一个
    puremaker
        5
    puremaker  
    OP
       27 天前
    @wangxin3
    提示这些:
    ERROR 526 --- [reate-475603167] com.alibaba.druid.pool.DruidDataSource : create connection SQLException, url: jdbc:mysql://192.168.10.106:60010/the_future_of_bamboo?characterEncoding=utf-8&autoRecOnnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&serverTimezOne=GMT%2B8, errorCode 0, state 08001

    java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

    一个项目一个项目试了,一样的问题
    没有套娃啊。就是 orbstrack 就是 docker 嘛,起了三个容器,一个 mysql 一个 redis 一个 centos ,项目就在 centos 里运行啊,没套娃啊
    wangxin3
        6
    wangxin3  
       27 天前
    @puremaker #5 看下数据库驱动对不对,mysql8 版本数据库要换驱动,com.mysql.cj.jdbc.Driver
    superrichman
        7
    superrichman  
       27 天前
    你的两个 mysql 是什么版本
    zed1018
        8
    zed1018  
       27 天前
    docker run -it --rm bash 你在容器里的 bash 看看端口通不通,通了再考虑背的问题
    yinmin
        9
    yinmin  
       27 天前 via iPhone
    你的 2 个容器是不是:一个用 host 网络模式、另外一个是用 bridge 网络模式?你大概率需要配置 docker 主机防火墙开放 tcp 端口的。

    其实有 1 个简单有效的方式,容器设置固定 ip 地址,然后连接这个容器固定 ip 地址。
    puremaker
        10
    puremaker  
    OP
       27 天前
    @stinkytofux 不是这个问题,我把有问题项目的表复制了一份到没问题项目的那个库,然后连到那个库上,也是连接不通
    puremaker
        11
    puremaker  
    OP
       27 天前
    @yinmin 网络一定是通的各位,因为我把两个项目部署在同一个 centos 虚拟机里,一个能连上 mysql 另一个就正常也应该可以。然后就是我把有问题的那个项目的数据库表拷贝到了没有问题的项目的数据库里,然后把有问题的项目的库改成了没问题项目的那个库,这样正常不就是可以连接了吗。但是还是不行。
    puremaker
        12
    puremaker  
    OP
       27 天前
    @superrichman 一个 mysql ,只有一个
    Latin
        13
    Latin  
       27 天前
    centos 上是不是启用 ipv6 然后紊乱了
    不然就 docker-compose 编排到一起用服务名发现或者固定 network
    sazima
        14
    sazima  
       27 天前
    1. ping 一下
    2. telnet 一下
    3 使用 mysql 命令连接测试一下。
    itechify
        15
    itechify  
    PRO
       27 天前
    开 ssh 让我来
    yeteng
        16
    yeteng  
       27 天前
    可以把配置文件的数据库连接 IP 改为 MySQL 的容器名称或者给 mysql 容器分配的 IP
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 22:13 PVG 06:13 LAX 15:13 JFK 18:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86