关于com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

最近早在处理一个小任务的时候遇到了这样的问题,相信有部分人也遇到过这样的问题。问题提示错误如下:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 


** BEGIN NESTED EXCEPTION ** 


java.net.SocketException
MESSAGE: java.net.BindException: Address already in use: connect


STACKTRACE:


java.net.SocketException: java.net.BindException: Address already in use: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2565)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.tuan.util.toolsEasy.Tuan57.getConnection(Tuan57.java:34)
at com.tuan.util.toolsEasy.Tuan57.insertUrl(Tuan57.java:45)
at com.tuan.util.toolsEasy.Tuan57.brand(Tuan57.java:120)
at com.tuan.util.toolsEasy.Tuan57.main(Tuan57.java:161)




** END NESTED EXCEPTION **

当然还有部分,没有粘过来。看问题是是说链接数据库的次数过多导致的错误,怎么解决呢?这是重点(我用的是mysql)首先在mysql的数据库中分别输入下面三句话,并依此回车
set wait_timeout=604800;
set interactive_timeout=604800;
set global connect_timeout=604800;

然后在程序中判断一下,数据是否链接成功。我的代码如下

public class Tuan57 {
//String name,namePinyin,logo;

public static Connection connection;
static{
connection=getConnection();
}
public static Connection getConnection()
{
String driver ="com.mysql.jdbc.Driver";
String url = "-------------------------------------------------";
   String userName = "root";
   String password = "jiaobuhui";
   
try
{
if(connection!=null)return connection;
else {
Class.forName(driver);
return DriverManager.getConnection(url,userName,password);
}
}catch (Exception exc){
exc.printStackTrace();
return null;
}
}



这样就可以了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值