bug记录:c++ mysql Connector:Lost connection to MySQL server during query

news2024/11/23 23:44:41

1.背景

    使用mysql connector1.1.4版本,代码中有 mysql 连接池,每次执行 sql 时从连接池取出一个连接,先用isClosed()判断为false继续使用,否则创建新连接。
    现在升级 mysql connector为1.1.13版本,业务代码未修改,服务运行正常,过一段时间后(1天左右),连接池所有连接检测正常,但是执行 sql 会报错:Lost connection to MySQL server during query

2.原因

    查询资料看到可能是 mysql wait_timeout 超时了,看下具体的配置命令show variables like '%timeout';
在这里插入图片描述
    这是28800秒,也就是8个小时
    可以简单验证下,把时间改短点,修改 wait_timeout 需要修改 interactive_timeout,修改后 wait_timeout 会跟着变。命令为 set global interactive_timeout=10; 这里改为10秒,经验证10秒后执行 sql 就会报错。
    旧版本 isClosed() 会同时判断连接是否被关闭以及调用ping命令,但是新版本只判断是不是调用了close,连接有效性的动作放到了isValid()里面。
在这里插入图片描述
bugs fixed
在这里插入图片描述

版本说明:https://dev.mysql.com/doc/relnotes/connector-cpp/en/news-1-1-5.html

3.解决

    弃用之前的isClosed(),改为!isValid()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/467677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux进程概念——其二

目录 环境变量 基本概念 常见环境变量 查看环境变量方法 测试PATH[重点] 测试HOME 和环境变量相关的命令 环境变量的组织方式 通过代码获取环境变量 通过系统调用获取或设置环境变量 环境变量通常是具有全局属性的[重点&#xff3d…

学会笔记本电脑录屏快捷键,轻松实现录屏!

案例:笔记本电脑录屏有快捷键吗? 【我每次打开笔记本电脑录屏都要耗费比较长的时间,这样会影响到我录屏的效率。在这里想问一下,有没有快速打开电脑录屏的方法?】 在日常的工作、学习、娱乐中,我们经常需…

算法训练第一周题解汇总

A - Sort the Subarray 大意:在s1找一个最大的 [l,r] 子区间,使其经过从小到大的排序后 能够变成 s2 题解:先确定最小的区间,然后慢慢扩大。 最小区间的确定:s1和s2第一个不相等的数开始,到最后…

浅谈测试用例设计 | 京东云技术团队

作者:京东物流 王莹莹 一、测试用例为什么存在 1.1 定义 测试用例(Test Case)是指对特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。测试用例内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,…

pytorch 计算网络模型的计算量FLOPs和参数量parameter之殊途同归

计算网络模型的计算量FLOPs和参数量parameter之殊途同归 参数量方法一:pytorch自带方法,计算模型参数总量参数量方法二: summary的使用:来自于torchinfo第三方库参数量方法三: summary的使用:来自于torchsu…

controlnet1.1预处理器功能详解

ControlNet 1.1 与 ControlNet 1.0 具有完全相同的体系结构,ControlNet 1.1 包括所有以前的模型,具有改进的稳健性和结果质量,但增加并细化了多个模型。 今天太忙了,有时间就把每个模型的测试样稿发出来 2023.4.27 分类预处理器备注模型黑白倒转invert边…

数据库物理存储结构

目录 一、数据库文件和文件组 1、数据库文件 (1) 主数据库文件(Primary Database File) (2) 次数据库文件(Secondary Database File) (3) 事务日志文件 …

[Linux]文档搜索和归档备份

​⭐作者介绍:大二本科网络工程专业在读,持续学习Java,输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:Linux基础操作。本文主要是分享一些Linux系统常用操作,内容主要来源是学校作业,分享出来的…

配置zabbix自定义监控项

1.需要安装zabbix-agent服务,使用的zabbix版本为5.0版本 参考:zabbix监控linux主机_Apex Predator的博客-CSDN博客 2.创建存放脚本目录并编辑监控服务的脚本(此处监控一下服务是否存活) mkdir /opt/zabbix_jb vi /opt/zabbix_jb/service_status.sh …

【容器化应用程序设计和开发】2.2 Dockerfile 的编写和最佳实践

往期回顾: 第一章:【云原生概念和技术】 第二章:2.1 容器化基础知识和Docker容器 容器化应用程序设计和开发 2.2 Dockerfile 的编写和最佳实践2.2.1 Dockerfile 包含哪些指令2.2.2 Dockerfile 注意事项 在上篇章节中,我们介绍了…

什么是索引?MySQL索引的底层数据结构

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树),这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引…

SAP 生产订单修改记录查询

无论在项目实施过程中还是在运维的项目中,经常会遇到生产订单被修改,导致需求发生变更,这个时候用户经常就会需要要求查询生产订单的修改记录。通过SAP的标准程序是没有办法查询到生产订单修改记录,这个时候就从开发的角度去做增强的方式去实现。 1、肯定是在生产订单保存…

AI(二):初体验(Cursor、Copilot、Bito)

Cursor Cursor官网下载:https://www.cursor.so/ && https://github.com/getcursor/cursor Cursor.so是一款基于GPT的代码生成工具,它可以帮助开发者快速生成代码,提高开发效率。GPT是一种自然语言处理技术,可以根据输入…

Lambda语法解析

Lambda语法解析 一.Lambda语法1.Lambda表达式基本形式:2.capture list(捕获列表)3.捕获列表程序案例 二.Lambda应用1.使用 lambda 表达式对数组排序,并将排序后的元素存储到新数组中:2.使用 lambda 表达式计算两个矩阵…

如何安装Auto-GPT

如何安装Auto-GPT 记录一下如何安装Auto-GPT 文章目录 如何安装Auto-GPT前提克隆项目进入项目目录安装所需的依赖重命名 .env.template 文件填写API_KEY创建auto-gpt.json文件运行 Auto-GPT 前提 在安装Auto-GPT之前,你需要具备以下条件: Git环境Python环…

从历史天气预报 API 看气象大数据的商业价值

引言 近年来,随着气象观测技术的不断提升和气象大数据的快速发展,越来越多的企业开始将气象数据应用于商业领域。其中,历史天气预报 API 作为一种可获取历史气象数据的接口,具有广泛的商业应用价值。 本文将从历史天气预报 API …

数字图像处理【8】频域滤波1—关于傅里叶

这一章是数字图像处理基础的最后一章。系统的介绍傅里叶级数、傅里叶变换、离散傅里叶变换,快速傅里叶变换,以及二维傅里叶变换在图像上的应用。 变换的作用 首先我们先来聊聊什么是“变换”?其实在第一章介绍 HSI 颜色模型的时候&#xff0…

数据库工具——mongostat

参考文档:mongostat​​​​​​​​​​​ mongostat提供了当前运行的mongod或者mongos实例的大概状态。mongostat有点类似Linux的vmstat,但mongostat提供的是mongod或者mongos实例的信息。 从MongoDB 4.4开始,mongostat现在与MongoDB Ser…

第五章——动态规划1

背包问题 01背包问题 有N个物品和容量是V的背包,每个物品有价值vi和权重(价值)wi属性,每件物品只能用一次(要么用0次,要么用1次),在背包能装得下的情况下,挑一部分物品装…

网络原理(四):传输层协议 TCP/UDP

目录 应用层 传输层 udp 协议 端口号 报文长度(udp 长度) 校验和 TCP 协议 确认应答 超时重传 链接管理 滑动窗口 流量控制 拥塞控制 延时应答 捎带应答 总结 我们第一章让我们对网络有了一个初步认识,第二章和第三章我们通…