macbook 装了 orbstrack ,用 docker 部署了 mysql 、redis 和 centos 。
我现在有两个 springboot 项目,这两个项目本地开发连接 docker 的 mysql 都没有问题。
然后都部署到同一个 centos 虚拟机里,都使用的是本电脑的局域网 ip 连接的数据库,一个可以正常访问到数据库,一个就访问不到,确认了链接 url 除了库名都是一样的,想请教一下这能是什么原因呢?
![]() |
1
puremaker OP 并且有问题的这个项目连接到 redis 是正常的。redis 和 mysql 是同一个 ip 地址,映射的不同端口
|
![]() |
2
wangxin3 5 小时 31 分钟前
|
3
stinkytofux 5 小时 22 分钟前
mysql 新建数据库的时候是有访问权限的, 需要指定本机访问还是所有人访问, 默认本机访问拒绝外部访问, 既然只是库名不一样导致的问题, 很可能是有问题的库权限的问题, 你可以用 shell 登录到 mysql 检查一下.
|
![]() |
4
howfree 5 小时 20 分钟前
看 network 是不是同一个
|
![]() |
5
puremaker OP @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 里运行啊,没套娃啊 |
7
superrichman 5 小时 16 分钟前
你的两个 mysql 是什么版本
|
8
zed1018 5 小时 15 分钟前
docker run -it --rm bash 你在容器里的 bash 看看端口通不通,通了再考虑背的问题
|
9
yinmin 5 小时 13 分钟前 via iPhone
你的 2 个容器是不是:一个用 host 网络模式、另外一个是用 bridge 网络模式?你大概率需要配置 docker 主机防火墙开放 tcp 端口的。
其实有 1 个简单有效的方式,容器设置固定 ip 地址,然后连接这个容器固定 ip 地址。 |
![]() |
10
puremaker OP @stinkytofux 不是这个问题,我把有问题项目的表复制了一份到没问题项目的那个库,然后连到那个库上,也是连接不通
|
![]() |
11
puremaker OP @yinmin 网络一定是通的各位,因为我把两个项目部署在同一个 centos 虚拟机里,一个能连上 mysql 另一个就正常也应该可以。然后就是我把有问题的那个项目的数据库表拷贝到了没有问题的项目的数据库里,然后把有问题的项目的库改成了没问题项目的那个库,这样正常不就是可以连接了吗。但是还是不行。
|
![]() |
12
puremaker OP @superrichman 一个 mysql ,只有一个
|
![]() |
13
Latin 4 小时 55 分钟前
centos 上是不是启用 ipv6 然后紊乱了
不然就 docker-compose 编排到一起用服务名发现或者固定 network |
![]() |
14
sazima 4 小时 53 分钟前
1. ping 一下
2. telnet 一下 3 使用 mysql 命令连接测试一下。 |
![]() |
15
oneisall8955 PRO |
![]() |
16
yeteng 3 小时 12 分钟前
可以把配置文件的数据库连接 IP 改为 MySQL 的容器名称或者给 mysql 容器分配的 IP
|