在 MySQL 中,连接经常断开的问题通常与 wait_timeout
参数有关。该参数控制着一个连接在闲置多长时间后会被 MySQL 自动断开。默认值为 28800 秒(8小时)。
方法1:调整 wait_timeout
参数
参数说明
- wait_timeout:指定 MySQL 在关闭一个连接之前等待行动的时间(秒)。
- interactive_timeout:指定交互式会话的超时时间,通常适用于命令行客户端。
如果一个连接闲置超过 wait_timeout
设置的秒数,MySQL 会主动断开该连接。
修改配置
在 Linux 系统中
- 打开 MySQL 配置文件
/etc/my.cnf
:sudo vim /etc/my.cnf
- 在
[mysqld]
属性组下添加以下参数:[mysqld] interactive_timeout=28800000 wait_timeout=28800000
在 Windows 系统中
- 打开 MySQL 配置文件
my.ini
。 - 在文件中增加以下参数:
[mysqld] interactive_timeout=28800000 wait_timeout=28800000
注意事项
- 无法将
wait_timeout
的值设置为无限大(即永久)。如果无法确保应用程序在设定的秒数内至少有一次操作,建议使用其他方法解决这个问题。
以上方法调整了 MySQL 的 wait_timeout
和 interactive_timeout
参数,通过延长超时时间来减少连接被自动断开的频率。然而,为了彻底解决问题,确保应用程序定期发送心跳包或进行其他保活操作也是必要的。