云服务器项目数据库连接超时问题解决

摘要:
具体情况如下:我在自己的ECS中部署了一个javaweb项目。该项目的主要功能是显示数据库的数据,但每次发布后都可以正常运行。当我第二天访问这个项目时,我无法连接到数据库。检查完信息后,我知道默认情况下,原始MySQL连接将在8小时不活动后被破坏。检查解决方案,互联网上的许多帖子都说,默认的销毁期限应该改为一年,但这种方法肯定会影响服务器的运行速度。我自己打开一个线程来解决这个问题

具体情况是这样,我在自己的云服务器部署了一个javaweb项目,该项目主要功能就是对数据库的数据进行展示,但是每次刚发布后都能正常运行,而到了第二天再去访问这个项目就连接不上数据库了,查了资料才知道原来mysql的连接会默认在8小时无操作后被销毁,查解决办法,网上很多帖子都说吧那个默认销毁时长改为一年就行了,但这种方法肯定是会影响服务器运行速度的,对此我自己是通过开辟一个线程解决的,如果这个解决方法会有什么隐患也希望路过的大佬可以指点一下。

具体做法:

在工具类和数据库创建连接后,开辟一个新线程,每隔一段时间访问一下数据库但又不进行其他操作,总而言之就是是使得对数据库的无操作时间不超过8小时,代码如下:

final long timeInterval = 1000*60*4;//设置执行周期为4小时
    Runnable runnable = new Runnable() {
        public void run() {
            while (true) {
               Statement statement;
            try {
                statement = conn.createStatement();
//conn为数据库连接
            
               //要执行的SQL语句
            String sql = "select  * from info limit 1";
          
                statement.executeQuery(sql);
                 
            } catch (SQLException e1) {
                
                e1.printStackTrace();
            }
                
                try {
                    Thread.sleep(timeInterval);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    };
    Thread thread = new Thread(runnable);
    thread.start();

免责声明:文章转载自《云服务器项目数据库连接超时问题解决》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS Pro 60天许可申请与试用easyui-combobox url绑定后台json数据问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SqlServer 数据库读写分离【转】

1. 实现原理:读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。 2. 实现方法:在MS Sql server中可以使用发布定义的方式实...

利用Python进行数据分析-Pandas(第五部分-数据规整:聚合、合并和重塑)

  在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。本部分关注可以聚合、合并、重塑数据的方法。 1、层次化索引   层次化索引(hierarchical indexing)是pandas的一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它使你能以低纬度形式处理高纬度数据。我们来看一个简单的栗子:创建一个Ser...

《大数据管理:数据集成的技术、方法与最佳实践》

《大数据管理:数据集成的技术、方法与最佳实践》 基本信息 原书名:Managing Data in Motion: Data Integration Best Practice Techniques and Technologies 原出版社: Morgan Kaufmann 作者: (美)April Reeve    译者: 余水清 潘黎萍 丛书名: 大...

MySQL用户权限验证与管理方法详解

本文实例讲述了MySQL用户权限验证与管理方法。分享给大家供大家参考,具体如下: 一、Mysql权限分两阶段验证 1. 服务器检查是否允许连接:用户名、密码,主机地址。 2. 检查每一个请求是否有权限实施。 二、Mysql权限列表 权限 权限级别 权限说明 create 数据库、表或索引 创建数据库、表或索引权限 drop 数据库或表 删除数据...

多线程实现数据库的并发操作

在Java中,程序需要操作数据库,操作数据首要事就是要获得数据库的Connection对象,利用多线程对数据导入数据库中将会加快操作进度,但是多个线程共享Connection对象,是不安全的,因为可以利用Java中的ThreadLocal为每个线程保存一个Connection对象,代码如下: package com.quar.innovation.db;...

POST提交数据方式

application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 当直接提交form表单时,默认就使用此种方式。 multipart/form-d...