MySQL Error number: MY-013993; Symbol: ER_THREAD_POOL_IDLE_CONNECTION_CLOSED; SQLSTATE: HY000

文档解释

Error number: MY-013993; Symbol: ER_THREAD_POOL_IDLE_CONNECTION_CLOSED; SQLSTATE: HY000

Message: %s

错误说明

MY-013993 (ER_THREAD_POOL_IDLE_CONNECTION_CLOSED) 是MySQL错误之一,这个错误在MySQL中被称作“线程池空闲连接关闭”错误。当连接空闲超过MySQL执行线程池的最大空闲时间(由wait_timeout参数控制)时,就会收到这个错误。这个错误偏重于MySQL服务端。

常见案例

当MySQL处理大量连接时,它会将连接发放到线程池中,连接一入池,就会马上开始处理,但有时MySQL的业务压力会非常高,因此执行线程池的所有连接都会被立即处理,但有时有些连接可能并没有立即处理,使用MySQL等待超时参数(wait_timeout)来控制服务端空闲连接空闲不被处理时间,而当处理空闲连接空闲时间超过MySQL参数设定时,就会收到MY-013993 错误,即ER_THREAD_POOL_IDLE_CONNECTION_CLOSED。

解决方法

1. 针对MySQL wait_timeout太短,可以通过修改MySQL配置文件中的wait_timeout参数,将wait_timeout值设置为更长的时间,以避免因为空闲连接等待时间过长而出现的ER_THREAD_POOL_IDLE_CONNECTION_CLOSED错误。

2. 监视MySQL的连接池线程,可以使用connections_connected参数监控连接池连接,将wait_timeout设置为一个更合理的数值,以便比较正确地使用连接池线程。

3. 将空闲连接关闭。MySQL可以设置一个参数来确保空闲连接得以关闭,只需要设置wait_timeout=0,当空闲的连接数超过wait_timeout限制时,连接就会被关闭,避免了ER_THREAD_POOL_IDLE_CONNECTION_CLOSED错误。

你可能感兴趣的