开发者社区> 问答> 正文

The last packet successfully received from the ser

使用DHCP数据库重启后请求不会报错,使用druid会报The last packet successfully received from the server was 21,891 milliseconds ago异常

原提问者GitHub用户YanXs

展开
收起
山海行 2023-07-05 21:08:05 248 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在使用Druid连接池时,如果数据库重启后长时间没有请求,连接池中的连接可能会被数据库服务器关闭,导致应用程序无法使用连接。当应用程序尝试使用这些已关闭的连接时,就会出现The last packet successfully received from the server was 21,891 milliseconds ago异常。

    这个异常通常是由于MySQL服务器的wait_timeout参数过小导致的。wait_timeout参数用于指定MySQL服务器在关闭空闲客户端连接之前等待的时间,如果设置过小,就会导致连接被过早关闭。

    2023-07-30 10:07:00
    赞同 展开评论 打赏
  • 解决办法我觉得有两种方式(单库无负载均衡):1,如果数据库重启,重启对应的应用。2,如果对性能要求一般,开启testOnBorrow。

    原回答者GitHub用户YanXs

    2023-07-06 11:54:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载