SqlSugar Mysql 偶发首次连接失败,就一直连接不上,但是其他连接却正常??? 返回

SqlSugar 处理完成
10 165

image.png

image.png


图一所示,第一次连接都失败。后续的连接都成功了。而且这个首次连接失败不是稳定复现的。

热忱回答10

  • log_sql_20240701.txt

    这是完整日志记录

    0 回复
  • https://www.donet5.com/ask/9/24958

    0 回复
  • @fate sta:大佬,他那个问题好像和我的不一样哦,他的是报Authentication 认证失败相关的异常。

    我遇到的都是Couldn't Connect to Server/Connect Timeout Expired这两种类型的错误。而且连接字符串没有设置sslmodel=none;

    <connectionStrings>

    <add name="ConnectionMySQL" connectionString="server=localhost;Port=3306;Database=abc;Uid=root;Pwd=root" />

    </connectionStrings>

    大部分出现是首次启动软件,或者重启电脑后。但又不能稳定复现,这是比较难排查的。

    已知电脑主机安装了mysql Server 8.0.30.0版本,.net 6.0 Desktop Runtime组件。sqlsugarcore版本5.1.4.86 ,没有安装mysql net connector  


    0 回复
  • sqlsugarcore 自带的mysqlconnector   按上面操作就行了

    0 回复
  • @fate sta:所以还有其他排查问题的思路吗?当遇到连接不上的时候,使用mysql workbench工具是能正常连接数据库的。然后再重新尝试软件还是连接不上。

    0 回复
  • image.png

    独立安装这个dll到最新试试

    0 回复
  • @fate sta:大佬,请教一下,SqlSugar中已创建的连接,多久会释放。 比如执行了一个查询后,15分钟左右再调用,这个连接会重新自动连上吗?还是已经断开了?

    0 回复
  • @MartinYuan

    原理是先找有没有睡眠的连接池有恢复连接池,如果没有睡眠的连接池打开新的连接池

    连接池短时间并不会清空。

     但是也不会无限增加,因为会在原有空闲的连接里面重复使用

    0 回复
  •  Pooling =false可以禁用连接池,这个时候就是立马清空。

    0 回复
  • @fate sta:下载了MysqlConnector源码,发现我遇到的异常都是这个内部抛出的。但是一直无法重现。其中报错“couldn't connect to server”异常是与mysqlserver 建立tcp连接超时的异常;“Connect Timeout Expired.”异常是建立连接过程超时15秒,未能完成打开连接的任务。

    0 回复