java ssh mysql数据库连接失效,重启java工程。如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ssh mysql数据库连接失效,重启java工程。如何解决?相关的知识,希望对你有一定的参考价值。

我使用的是javassh框架连接的mysql数据库,但是在服务器上跑一段时间数据库连接就会挂掉,需要重新启动java工程。请问在连接mysql数据库时怎么设置才能解决这个问题啊?

参考技术A 1、一般的解决方法大多是在数据库连接字符串中增加“autoReconnect=true ”选项。但是这只对mysql4以前的版本有效。在最新的mysql中是无效的。其实要解决这个问题也有一个简单的方法,就是修改mysql的启动参数。缺省情况下mysql的timeout时间是28800秒,正好是8小时,增加一个0就可以了。
同理也可以在" my.ini"文件中增加此参数。
mysqld-nt --default-table-type=innodb --interactive_timeout=288000
2、从根源入手,设置mysql的wait_timeout为31536000(一年)。
mysql> show variables;
| wait_timeout | 28800
| interactive_timeout | 28800
" my.ini"文件中修改此参数
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启服务,OK!追问

我的数据库已经这样设置了,但是还是不行

追答

我的之前这样设置就可以啦。其他的我也不是特别清楚啦。不好意思。

参考技术B 数据库挂掉是什么意思。。 有木有异常什么的追问

就是,访问的时候没有数据返回,和数据库的连接断了,需要重启工程

参考技术C 可能是项目的缓存设置太小了~~追问

有具体的设置方法吗

JAVA使用JDBC连接MySQL数据库

首先要下载Connector/J地址:http://www.mysql.com/downloads/connector/j/

这是MySQL官方提供的连接方式:

解压后得到jar库文件,需要在工程中导入该库文件

我是用的是Eclipse:


技术分享
 
技术分享
 
技术分享
 JAVA连接MySQL稍微繁琐,所以先写一个类用来打开或关闭数据库:

DBHelper.java

Java代码  
  1. package com.hu.demo;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.DriverManager;  
  5. import java.sql.PreparedStatement;  
  6. import java.sql.SQLException;  
  7.   
  8. public class DBHelper {  
  9.     public static final String url = "jdbc:mysql://127.0.0.1/student";  
  10.     public static final String name = "com.mysql.jdbc.Driver";  
  11.     public static final String user = "root";  
  12.     public static final String password = "root";  
  13.   
  14.     public Connection conn = null;  
  15.     public PreparedStatement pst = null;  
  16.   
  17.     public DBHelper(String sql) {  
  18.         try {  
  19.             Class.forName(name);//指定连接类型  
  20.             conn = DriverManager.getConnection(url, user, password);//获取连接  
  21.             pst = conn.prepareStatement(sql);//准备执行语句  
  22.         } catch (Exception e) {  
  23.             e.printStackTrace();  
  24.         }  
  25.     }  
  26.   
  27.     public void close() {  
  28.         try {  
  29.             this.conn.close();  
  30.             this.pst.close();  
  31.         } catch (SQLException e) {  
  32.             e.printStackTrace();  
  33.         }  
  34.     }  
  35. }  

再写一个Demo.java来执行相关查询操作

Demo.java

Java代码  技术分享
    1. package com.hu.demo;  
    2.   
    3. import java.sql.ResultSet;  
    4. import java.sql.SQLException;  
    5.   
    6. public class Demo {  
    7.   
    8.     static String sql = null;  
    9.     static DBHelper db1 = null;  
    10.     static ResultSet ret = null;  
    11.   
    12.     public static void main(String[] args) {  
    13.         sql = "select *from stuinfo";//SQL语句  
    14.         db1 = new DBHelper(sql);//创建DBHelper对象  
    15.   
    16.         try {  
    17.             ret = db1.pst.executeQuery();//执行语句,得到结果集  
    18.             while (ret.next()) {  
    19.                 String uid = ret.getString(1);  
    20.                 String ufname = ret.getString(2);  
    21.                 String ulname = ret.getString(3);  
    22.                 String udate = ret.getString(4);  
    23.                 System.out.println(uid + "\t" + ufname + "\t" + ulname + "\t" + udate );  
    24.             }//显示数据  
    25.             ret.close();  
    26.             db1.close();//关闭连接  
    27.         } catch (SQLException e) {  
    28.             e.printStackTrace();  
    29.         }  
    30.     }  
    31.   
    32. }  

以上是关于java ssh mysql数据库连接失效,重启java工程。如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSH 和密钥对连接 Java-MySQL [重复]

一劳永逸解决IDEA 2019.3连接MySQL80时区(serverTimezone)问题

SSH如何连接MYSQL数据库

MySQL最大连接数/缓存设置

mysql 1040 too many connections,压测接口500提示数据库连接到达上限解决方案

clickhouse 重启,软连接失效,增加存储路径