MySQL wait_timeout全局和会话设置问题

时间:2016-07-07 06:58:22

标签: mysql database database-administration mysql-5.5

在MySQL中,某些参数有两个值:

1)对于会话。
2)对于全球。

我们可以检查这些参数的值,例如:

1)显示' wait_timeout'
等变量 2)显示全局变量,例如' wait_timeout'

现在它返回值:
1)会话= 500
2)对于global = 28800

我可以通过命令更改变量:
设置全局wait_timeout = 100;
设置会话wait_timeout = 200;

但是当我再次登录时,我得到以下值:
for session = 500
for global = 100。

这意味着全局值保留,会话不保留,这是绝对正确的。 但我担心的是我们如何才能为所有会话更改会话变量? 因为在这种情况下,全局不是每个会话所采用的值。

2 个答案:

答案 0 :(得分:2)

是,

在MySQL中有2次超时。哪一个用于连接取决于连接类型。一个用于BATCH处理,另一个用于交互式

第二个变量是interactive_timeout。

查看interactive_timeout

的设置
SHOW VARIABLES LIKE 'interactive_timeout';
SHOW GLOBAL VARIABLES LIKE 'interactive_timeout';

通过mysql客户端登录样本

# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 106426
Server version: 10.1.10-MariaDB-log Homebrew

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 500   |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> show global variables like 'wait_timeout';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> show variables like 'interactive_timeout';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 500   |
+---------------------+-------+
1 row in set (0.01 sec)

MariaDB [(none)]> show global variables like 'interactive_timeout';
+---------------------+-------+
| Variable_name       | Value |
+---------------------+-------+
| interactive_timeout | 500   |
+---------------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]>

现在在批处理模式下相同

# mysql -uroot -p -e "show variables like 'wait_timeout';"
Enter password:
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| wait_timeout  | 28800 |
+---------------+-------+
#

答案 1 :(得分:0)

我得到了确切的描述:

在线程启动时,会话wait_timeout值从全局wait_timeout值或全局interactive_timeout值初始化,具体取决于客户端的类型(由mysql_real_connect()的 CLIENT_INTERACTIVE 连接选项定义)

在MySQL doc wait_timeout description