长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。
通常的短连接操作步骤是:
连接-》数据传输-》关闭连接;
而长连接通常就是:
连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;
这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了
show full processlist # 进入数据库查看慢语句,通过kill id 杀死语句(update语句慎重,可能会丢数据)
root登录到MYSQL,设置超时时间
show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 28800 | # 默认超时时间8个小时(单位是秒)
+---------------+-------+
row in set (0.00 sec)
# 修改超时时间 修改配置文件永久生效:
[mysqld]
interactive_timeout = 120 #<==此参数设置后wait_timeout自动生效。
wait_timeout = 120
# interactive_timeout: 服务器关闭交互式连接前等待活动的秒数
# wait_timeout: 服务器关闭非交互连接之前等待活动的秒数。
两者生效取决于:客户端是交互或者非交互的连接。
在交互模式下,interactive_timeout才生效;非交互模式下,wait_timeout生效
# 全局临时生效,重启mysql失效(所以还需要在MYSQL中修改)
mysql> set global wait_timeout=1200; # 设置为1200秒
mysql> show global variables like "wait_timeout";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout | 1200 |
+---------------+-------+
1 row in set (0.00 sec)