我从错误消息中读到了以下建议:

你应该考虑过期.

我用的是Spring和JPA.我应该在哪里配置连接器/J?(persistence.xmlentityManagerFactory弹簧配置,或dateSource弹簧配置,或其他地方?)

推荐答案

本文介绍了三种防止连接中断的解决方案:

  1. 将连接字符串配置为autoReconnect=true.这是URL连接字符串的一个属性,它在驱动程序级别工作.您需要更改数据源配置中的连接字符串.

    url="jdbc:mysql://localhost:3306/confluence?autoReconnect=true"
    
  2. 增加超时时间.这通常是数据库的一个属性.您可以增加该值,以查看连接中止是否减少.

  3. 配置连接池以测试连接有效性.这是在游泳池中完成的,而不是在驾驶员级别.这将取决于您使用的数据源实现.但是,如果使用池,例如c3p0,则应该在数据源的属性中进行配置.

补充意见:

  • 数据源/池也可以有一个超时,它对应于空闲连接在池中保留的时间.以免与数据库超时混淆.
  • 有几种方法可以测试连接的有效性.一种常见的方法是使用虚拟试验台.池将在虚拟测试表上发出select,以查看连接是否仍然正常.

Mysql相关问答推荐

为什么我安装MySQL时不能使用3306端口?

MySQL binlog事件上的并发事务行为

我如何才能从MySQL过程中获取LARAVEL端的数据?

如何跨多个产品查找相同时间范围的数据集

如果我有USER列,如何将SQL CREATE TABLE与PostgreSQL和MySQL一起使用?

从 NextJS/Prisma 添加用户 ID (FK) 到 MySQL 表

MySQL 8.0 可以在 Select 语句中返回 JSON 对象数组吗?

根据 MySql 中同一表中的多列 Select 多列

排序子查询结果并返回每个 ID 的第一行

仅当 SELECT 语句在 MySQL 中给出空集时才执行 UPDATE 语句

如何根据 R 中的价格范围将数据从一列复制到新列?

如何让连续 3 周或以上的用户有订单?

MySQL 将分组 JSON Select 转换为单个 JSON 对象

判断一列中的多个值并返回值 1 或 0

如何知道 Select 查询花费了多少时间?

基于两个单元格值的 SQL 过滤表

PDO:MySQL 服务器已消失

如何从两个不同的日期获得年份差异?

比较 MySQL 中的日期忽略 DateTime 字段的时间部分

使用 MySql,我可以对列进行排序但最后有 0 吗?