瀏覽代碼

chore(db): configure mysql connection pool parameters

DB-CONNECTION-STRING-POOLING-CONFIG-1

显式约束主库 ConnectionString 的 MySQL 连接池行为,把先前隐式依赖
驱动默认值的状态转为团队显式协作参数。

驱动:MySqlConnector 2.2.5(由 SqlSugarCore 5.1.4.214 间接引入)
文档:https://mysqlconnector.net/connection-options/

追加 6 项参数到 ConnectionConfigs[0].ConnectionString 末尾,不改
Server/Port/Database/Uid/Pwd/SslMode/Charset 等既有参数,也不改
DbSettings/TableSettings/SeedSettings:

  Pooling=true
  Minimum Pool Size=0
  Maximum Pool Size=20          (默认 100 → 收紧为 20,减少共享出口 IP
                                 撞 server-side max_connect_errors 的可能)
  Connection Timeout=10         (默认 15 → 略缩,加速失败发现)
  Connection Idle Timeout=180   (与默认一致,显式声明锁定行为)
  Connection LifeTime=300       (默认 0/∞ → 300s,强制连接定期轮转,
                                 防止复用已被服务端断的死连接 →
                                 EndOfStreamException 重连风暴)

边界:
- 本配置不能解封已发生的 MySQL 1129 host block;已发生的封禁仍需
  DBA FLUSH HOSTS 或更换可用出口 IP。
- 仅治理主库 SqlSugar 主链路;S8 evaluator / scheduler 的旁路
  new SqlSugarScope (Guid.NewGuid() ConfigId, 不继承本参数) 不在
  本批范围,后续独立批次治理:
    S8-WATCHRULE-DATASOURCE-AUDIT-1 (DB 解封后只读审计 endpoint)
    S8-DYNAMIC-SQLSUGAR-SCOPE-FACTORY-1 (旁路 scope 工厂化)

阶段 4 冒烟通过:单次 restart_aidop.sh 成功;启动日志显示 6 项参数
被 SqlSugar 正确解析加载;5 分钟观察窗口零新 1129 / 零 Unknown
connection option / 零 EndOfStreamException;S8WatchScheduler 多
tick 全 SUCCESS。
YY968XX 4 天之前
父節點
當前提交
4e12a19b81
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      server/Admin.NET.Application/Configuration/Database.json

+ 1 - 1
server/Admin.NET.Application/Configuration/Database.json

@@ -12,7 +12,7 @@
         "DbNickName": "系统库",
         //"ConnectionString": "Server=123.60.180.165;Port=3306;Database=dopdemo;Uid=root;Pwd=5heng=uN;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
         //"ConnectionString": "Server=106.14.73.46;Port=3306;Database=aidopcore;Uid=aidopremote;Pwd=AidOp#Remote2026$Secure;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
-        "ConnectionString": "Server=123.60.180.165;Port=3306;Database=aidopdev;Uid=aidopremote;Pwd=1234567890aiDOP#;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;",
+        "ConnectionString": "Server=123.60.180.165;Port=3306;Database=aidopdev;Uid=aidopremote;Pwd=1234567890aiDOP#;SslMode=None;Charset=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=true;Pooling=true;Minimum Pool Size=0;Maximum Pool Size=20;Connection Timeout=10;Connection Idle Timeout=180;Connection LifeTime=300;",
         // 本地 SQLite 示例(切回时改 DbType 为 Sqlite 并恢复下行连接串)
         //"DbType": "Sqlite",
         //"ConnectionString": "DataSource=./Admin.NET.db",