导读
作者:魏新平
知数堂第5期MySQL实战班学员,第10期MySQL优化班学员,现任职助教。
现象
当我们用MySQL客户端或者程序(如Java,Python等)连接MySQL后,如果闲置一段时间(就是不执行任何SQL),再次执行SQL的时候就会报失去连接的错误,如:
ERROR2006(HY000): MySQL server has gone away
或
Lostconnection to MySQL server during query
这是MySQL控制连接数的机制,会自动把一些闲置时间超过配置值的连接kill掉。
闲置时间配置参数
这里涉及的参数有两个,wait_timeout和interactive_timeout。而MySQL的参数又分为GLOBAL级别和SESSION级别,所以严格的讲,会涉及到四个参数。
参数的官方解释:
interactive_timeout: The number of seconds the server waits for activity on an interactive connection before closing it. An interactive client is defined as a client that uses the CLIENT_INTERACTIVE option to mysql_real_connect().
翻译:interactive_timeout控制交互式连接的空闲时间,如果调用mysql的mysql_real_connect()函数的时候,使用了CLIENT_INTERACTIVE参数,该连接就定义为交互式连接。
w