微服务拆分无法连接服务器数据库问题(Could not create connection to database server. Attempted reconnect 3 times)

一、配置服务器镜像资源

在这里,服务器本人使用的是阿里云ESC服务器,并且使用docker部署。然后考虑如何将程序连接到我们服务器中的数据库

通过docker ps 指令查看服务器运行的镜像资源

docker ps

可以看见我们的服务器已经设置好了mysql的镜像资源

PS:设置MySQL镜像资源

docker run -d \
            --name mysql \  镜像资源名字
            -p 3306:3306 \  设置端口映射 宿主机端口映射到容器端口
            -e TZ=Asia/Shanghai \
            -e MYSQL_ROOT_PASSWORD=123 \
            -v /root/mysql/data:/var/lib/mysql \  数据卷挂载
            -v /root/mysql/conf:/etc/mysql/conf.d \
            -v /root/mysql/init:/docker-entrypoint-initdb.d \
            --network ls-net\  自定义网络
    mysql

 

 

二、配置后端对服务器数据库的连接

url: jdbc:mysql://服务器ip地址:3306/自己创建的数据库?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai

三、微服务拆分

在这里,我从整个单体项目开始拆分,以商品模块为例进行拆分。

注意:在拆分后的模块需要重新配置yaml文件 数据库连接的url要根据数据库进行改变,启动类上的@MaperScan也要更改为项目文件中所对应的包。

 

四、测试结果

做完上面这三步,博主认为没啥大问题,直接启动!!!

看见这么大一串报错,直接裂开。但是我们不难发现报错的原因就是后端连接数据库失败并且重复连接了三次都失败了,系统自动放弃连接了。

博主开始考虑是不是docker部署服务器这部分出问题了,于是又进行docket ps 查看运行的镜像资源,mysql镜像仍然存在并且运行。

 

五、问题解决

经过博主几个小时的查找资料的煎熬,终于知道错误出在何处。

1.我们打开我们的阿里云的云服务器管理中心

进入到我们的服务器管理界面,打开安全组

点击管理规则

进入管理页面,我们可以发现我们的服务器并没有开放我们的mysql端口(3306)

然后我们选择手动添加  端口范围选择MySql(3306) 授权对象可根据自己的需求进行选择

最后,我们进行测试

可以看见 接口测试能够正确的返回结果。

最后总结 在微服务拆分的时候,注意服务器中是否有数据库,yaml文件中有关数据库配置是否完整且没有拼写错误,最后检查自己的服务器是否开发数据库端口

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值