我发现会话变量优先于全局变量。
是否可以应用"设置全局"设置的全局变量。查询打开会话,因此将本地一个与全局进行?
或,有什么方法可以等待所有打开的会话完成他们的任务,然后进行睡眠会议重新连接?
您可以将任何会话变量重置回其全局变量等效,而不必重新连接。
,例如
mysql> SET @@session.foreign_key_checks=0;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@global.foreign_key_checks,@@session.foreign_key_checks;
+-----------------------------+------------------------------+
| @@global.foreign_key_checks | @@session.foreign_key_checks |
+-----------------------------+------------------------------+
| 1 | 0 |
+-----------------------------+------------------------------+
1 row in set (0.00 sec)
mysql> SET @@session.foreign_key_checks=@@global.foreign_key_checks;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@global.foreign_key_checks,@@session.foreign_key_checks;
+-----------------------------+------------------------------+
| @@global.foreign_key_checks | @@session.foreign_key_checks |
+-----------------------------+------------------------------+
| 1 | 1 |
+-----------------------------+------------------------------+
1 row in set (0.00 sec)
是,会话变量优先使用全局变量,并且有2种全局和会话变量。
-
喜欢'transaction_isolation" ,一个人可以自动设置全局变量 to sessign> sessign> session变量更改 Global> Global> Global variables /strong>并重新连接(登录和登录( mySQL 。
-
喜欢 wait_timeout&quort&quort&quort&quot ,一个人无法自动设置全局变量 to 会话变量变量更改 global> global> global> global/strong>并重新连接(登录和登录( mySQL 。
例如,关于'transaction_isolation&quot', REPEATABLE-READ
是'transaction_isolation;全局和会话变量如下所示:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| REPEATABLE-READ | REPEATABLE-READ |
+--------------------------------+---------------------------------+
然后,我们将READ-UNCOMMITTED
设置为" Transaction_isolation"全局变量如下所示:
mysql> SET GLOBAL transaction_isolation = 'READ-UNCOMMITTED';
然后,READ-UNCOMMITTED
仅设置为" Transaction_isolation"全局变量如下所示:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| READ-UNCOMMITTED | REPEATABLE-READ |
+--------------------------------+---------------------------------+
然后,注销 mySQL :
mysql> exit
然后,登录 mysql :
C:Userskai>mysql -u root -p
现在,READ-UNCOMMITTED
也设置为" Transaction_isolation"会话变量如下所示:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| READ-UNCOMMITTED | READ-UNCOMMITTED |
+--------------------------------+---------------------------------+
例如,关于 wait_timeout&quort&quort&quort&quot&quot 28800
是'wait_timeout的默认值全局和会话变量如下所示:
mysql> SELECT @@global.wait_timeout, @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 28800 | 28800 |
+-----------------------+------------------------+
然后,我们将1000
设置为'Wait_timeout;全局变量如下所示:
mysql> SET GLOBAL wait_timeout = 1000;
然后,1000
仅设置为'Wait_timeout&quot&quot&quot全局变量如下所示:
mysql> SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 28800 |
+-----------------------+------------------------+
然后,注销 mySQL :
mysql> exit
然后,登录 mysql :
C:Userskai>mysql -u root -p
现在,1000
未设置为" Wait_timeout"会话变量如下所示:
mysql> SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 28800 |
+-----------------------+------------------------+
因此,在这种情况下,只需将1000
设置为'Wait_timeout;会话变量如下所示;
mysql> SET SESSION wait_timeout = 1000;
或设置DEFAULT
,它是 1000
的of wait_timeout;全局变量 to 'wait_timeout;会话变量如下所示:
mysql> SET SESSION wait_timeout = DEFAULT;
现在,1000
也设置为'Wait_timeout&quot&quot会话变量如下所示:
mysql> SELECT @@global.wait_timeout, @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 1000 |
+-----------------------+------------------------+