咨询个生产业务日志错误问题
你好~
请教个问题,我们业务客户端在连接时候出现“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)
数据库wait_timeout和interactive_timeout这两个参数决定会话连接断开。这个时间达到了,数据库主动kill了连接线程,但是应用不知道原本连接池里面的连接断了,下次操作直接服用了已经断开的连接,所以有这个报错。建议应用连接池加入探活解决。当然调大wait_timeout参数也是可以的。但是过大会造成线程没法回收造成资源浪费。 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 caihe.li 发表于 2025-3-20 10:03
数据库wait_timeout和interactive_timeout这两个参数决定会话连接断开。这个时间达到了,数据库主动kill了 ...
也就是从要应用解决比较理想 reddey 发表于 2025-3-20 14:29
也就是从要应用解决比较理想
是这个意思{:2_26:}
页:
[1]