greatSQL小生 发表于 2025-3-19 12:47:36

咨询个生产业务日志错误问题


你好~
请教个问题,我们业务客户端在连接时候出现“The client was disconnected by the server because of inactivity.” ,请问是什么问题导致的,他们之前习惯是用5.7版本,是啊不是他们要升级什么驱动或者设置需要改啥的~

还有个现象就是show process没有出现业务连接~,是不是都被服务端进程给kill 了~



以下是timeout 参数

+------------------------------------------+----------+
| Variable_name                            | Value    |
+------------------------------------------+----------+
| connect_timeout                        | 10       |
| delayed_insert_timeout                   | 300      |
| have_statement_timeout                   | YES      |
| innodb_flush_log_at_timeout            | 1      |
| innodb_lock_wait_timeout               | 10       |
| innodb_print_lock_wait_timeout_info      | ON       |
| innodb_rollback_on_timeout               | ON       |
| interactive_timeout                      | 600      |
| lock_wait_timeout                        | 600      |
| mysqlx_connect_timeout                   | 30       |
| mysqlx_idle_worker_thread_timeout      | 60       |
| mysqlx_interactive_timeout               | 28800    |
| mysqlx_port_open_timeout               | 0      |
| mysqlx_read_timeout                      | 30       |
| mysqlx_wait_timeout                      | 28800    |
| mysqlx_write_timeout                     | 60       |
| net_read_timeout                         | 30       |
| net_write_timeout                        | 60       |
| parallel_queue_timeout                   | 0      |
| replica_net_timeout                      | 60       |
| rpl_stop_replica_timeout               | 31536000 |
| rpl_stop_slave_timeout                   | 31536000 |
| secondary_engine_read_delay_wait_timeout | 60       |
| slave_net_timeout                        | 60       |
| ssl_session_cache_timeout                | 300      |
| thread_pool_idle_timeout               | 60       |
| wait_timeout                           | 600      |
+------------------------------------------+----------+
27 rows in set (0.00 sec)

caihe.li 发表于 2025-3-20 10:03:27

数据库wait_timeout和interactive_timeout这两个参数决定会话连接断开。这个时间达到了,数据库主动kill了连接线程,但是应用不知道原本连接池里面的连接断了,下次操作直接服用了已经断开的连接,所以有这个报错。建议应用连接池加入探活解决。当然调大wait_timeout参数也是可以的。但是过大会造成线程没法回收造成资源浪费。

yejr 发表于 2025-3-20 10:23:04

caihe.li 发表于 2025-3-20 10:03
数据库wait_timeout和interactive_timeout这两个参数决定会话连接断开。这个时间达到了,数据库主动kill了 ...

wait_timeout和interactive_timeout的默认值是8小时,在GreatSQL提供的my.cnf模板里我改成了600,避免有些空闲连接长时间不释放浪费资源

更多内容可参考
https://greatsql.cn/docs/8.0.32-27/12-dev-guide/12-1-4-cw-threadpool.html
https://greatsql.cn/docs/8.0.32-27/12-dev-guide/12-8-2-error-connection-failure.html

reddey 发表于 2025-3-20 14:29:25

caihe.li 发表于 2025-3-20 10:03
数据库wait_timeout和interactive_timeout这两个参数决定会话连接断开。这个时间达到了,数据库主动kill了 ...

也就是从要应用解决比较理想

caihe.li 发表于 2025-3-21 10:40:58

reddey 发表于 2025-3-20 14:29
也就是从要应用解决比较理想

是这个意思{:2_26:}
页: [1]
查看完整版本: 咨询个生产业务日志错误问题