sqlsugar 经常出现 Connection open error . Connect Timeout 返回

SqlSugar 沟通中
27 1499

经常出现"中文提示 :  连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Connect Timeout expired.DbType=\"MySql\";ConfigId=\"\".\r\nEnglish Message : Connection open error . Connect Timeout expired.DbType=\"MySql\";ConfigId=\"\" " 的错误。

image.png

经常会出现这种待处理状态的请求,这请求相应后必定会出现 Connect Timeout 的错误,只有上线的时候才会出现这种错误。

热忱回答27

  • fate sta fate sta VIP0
    2023/12/6

    .net framework还是.net core

    0 回复
  • fate sta fate sta VIP0
    2023/12/6

     对于MySQL数据库,连接超时的问题可能有一些特定的原因和解决方法。以下是一些建议:


    检查MySQL服务器状态: 确保MySQL服务器正在运行并且没有遇到性能问题。你可以使用以下命令检查MySQL服务器状态:


    SHOW VARIABLES LIKE 'uptime';SHOW STATUS LIKE 'Threads_connected';



    这将显示MySQL服务器的运行时间和当前连接数。如果连接数非常高,可能需要优化数据库或增加硬件资源。


    检查连接参数: 在连接到MySQL数据库时,确保你的连接字符串中的超时参数(如connect_timeout)设置得合理。如果连接的时间超过了这个限制,就会出现连接超时错误。


    检查网络连接: 确保网络连接稳定,防火墙设置正确,没有网络问题导致连接超时。你可以尝试通过ping或其他网络工具来测试与MySQL服务器的连接。


    0 回复
  • Mr.Net Mr.Net VIP0
    2023/12/19

    我也是经常遇到这个问题,你解决了吗?

    0 回复
  • fate sta fate sta VIP0
    2023/12/19

    @Mr.Net:报错代码加上db.CopyNew()测试

    0 回复
  • fate sta fate sta VIP0
    2023/12/19

    https://www.donet5.com/Home/Doc?typeId=1224

    0 回复
  • Mr.Net Mr.Net VIP0
    2023/12/19

    @fate sta:我在本地开发环境没问题,部署到服务器后,就会报错,现在还在卡着没有解决

    0 回复
  • Mr.Net Mr.Net VIP0
    2023/12/19

    @fate sta:大佬,我这解决了,多租户时候连接字符串直接写死。。。

    0 回复
  • @fate sta:我也遇到这个问题,人直接麻了,连接mysql5.0版本正常,新服务器安装的是8.2.0版本,连接始终报错:

    SqlSugar.SqlSugarException:“中文提示 :  连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Connect Timeout expired.DbType="MySql";ConfigId="".
    English Message : Connection open error . Connect Timeout expired.DbType="MySql";ConfigId=""”

    navicat正常连接

    0 回复
  • fate sta fate sta VIP0
    2024/1/10

    @魔法披风:发新问题,描述清楚  .net framework还是 .net core

    0 回复
  • .net core

    0 回复
  • .NET Core
    Mysql  服务器 cpu 和内存都占用不高的情况下。
    SqlSugar.SqlSugarException 提示mysql  Connect Timeout expired.  大佬们有好的解决方案吗?

    Sql  查询不慢,都有索引,sql 分析都不是慢SQL 是为什么?


    0 回复
  • @段丛磊:本地还是远程,用本地库测试

    0 回复
  • @fate sta
    远程
    Server=xxx;Port=3306;Database=xxxxx;Uid=root;Pwd=xxxxx;AllowLoadLocalInfile=true;AllowUserVariables=true;Charset=utf8;SslMode=none;Max pool size=512;Min pool size=1;
    GN4RYHD2(EPO2Y(KOI_V7_4.jpgSqlSugarCore  版本:  5.1.4.108
    数据是Mysql  8.0  我自建的数据库,我看了cpu 和内存占用只有10%

    0 回复
  • @段丛磊:字符串加上 AllowPublicKeyRetrieval=True min pool size=0;SslMode=none;Pooling=false

    8.0以上看一下认证方式

    在MySQL 8.0之后,默认的default_authentication_plugin值是caching_sha2_password

    0 回复
  • 我这边 .net8 + SqlServer遇到同样的情况,经常连接超时


    中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)DbType="SqlServer";ConfigId="". English Message : Connection open error . A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)DbType="SqlServer";ConfigId=""

    0 回复
  • @是你呀丶:使用的是Ioc模式

    image.png

    0 回复
  • @是你呀丶:这个错,看文档:sqlserver写的很清楚,需字符串配置一下

    0 回复
  • @是你呀丶:是偶发的

    0 回复
  • 0 回复
  • @是你呀丶

    https://www.donet5.com/Home/Doc?typeId=1218

    看最下面找到相应错误

    0 回复
  • 你这个错可能是网络问题:

    在建立到SQL Server的连接时发生了与网络相关或特定于实例的错误。未找到服务器或无法访问服务器

    0 回复
  • 最好用本地测试

    0 回复
  • 老师,我只在最先面贴的微软官方文档里找到了对应的:
    image.png

    但是这个是要去配置数据库的吧,我现在还没有这个权限,你前面有说 "需要字符串配置一下" ,配置字符串就能解决么?还请老师再指点一下字符串具体怎么配置?

    0 回复
  • @是你呀丶:按微软官方方案来

    0 回复
  • 你这个偶发的可能是网络问题,大概率是这样的,如果没配置上在的TCP应该是永远访问不了的

    0 回复
  • 我刚刚也找领导确认了下,数据库的配置是正常的,但是这个问题出现频率还是挺高的,基本上是40%-50%的时候都会出现,
    而且每次出现时,连接这个库的另一个EF的项目都是正常的,所以我感觉也不太可能是网络的问题

    0 回复
  • @fate stay night:我已经尝试在将所有使用到数据库操作的地方都改成了 db.CopyNew(),依然会时不时的出现这种问题,现在很崩溃

    0 回复