我在设置全局和会话参数之间有点困惑,我正在尝试设置 wait_timeout
默认设置是
SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 28800 | 28800 |
+-----------------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
以下 SQL 将更改会话设置
SET wait_timeout = 10;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
检查值,这也很清楚
SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 28800 | 10 |
+-----------------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
下面的 SQL 将全局更改它
SET GLOBAL wait_timeout = 10;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
检查值,这也很清楚
SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 10 | 10 |
+-----------------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
现在,我正在关闭 MySQL 线程并打开一个新线程,我找到以下数据
SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 10 | 28800 |
+-----------------------+------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
由于我已经使用 SET GLOBAL 更改了值,因此此时我无法解释会话设置为何已更改。
为了改变,wait_timeout
我们也应该改变interactive_timeout
变量。
定义wait_timeout
:服务器在关闭非交互式连接之前等待活动的秒数。在线程启动时,会话wait_timeout 值从全局wait_timeout 值或全局interactive_timeout 值初始化。
这是测试
查询不改变任何参数,所有值默认设置为8小时
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 28800 | 28800 | 28800 | 28800 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
在会话级别更改参数
SET wait_timeout = 10 , interactive_timeout = 10;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
结果,一切都如预期般顺利,全局设置保持不变,会话设置已更改
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 28800 | 10 | 28800 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
在全局级别更改参数
SET GLOBAL wait_timeout = 10 ;
Query OK, 0 rows affected (0.00 sec)
SET GLOBAL interactive_timeout = 10;
Query OK, 0 rows affected (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
结果,一切都符合预期
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 10 | 10 | 10 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
断开 MySQL 线程并再次连接,一切看起来又好了
SELECT @@global.wait_timeout , @@session.wait_timeout , @@global.interactive_timeout , @@session.interactive_timeout;
+-----------------------+------------------------+------------------------------+-------------------------------+
| @@global.wait_timeout | @@session.wait_timeout | @@global.interactive_timeout | @@session.interactive_timeout |
+-----------------------+------------------------+------------------------------+-------------------------------+
| 10 | 10 | 10 | 10 |
+-----------------------+------------------------+------------------------------+-------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11042 次 |
最近记录: |