Yes, session variables are prioritized to use over global variables, and there are 2 kinds of global and session variables.
Like "transaction_isolation", one can automatically set global variables to session variables after changing global variables and reconnecting (logging out and logging in) MySQL.
Like "wait_timeout", one cannot automatically set global variables to session variables after changing global variables and reconnecting (logging out and logging in) MySQL.
For example about "transaction_isolation", REPEATABLE-READ
is the default value for "transaction_isolation" global and session variables as shown below:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| REPEATABLE-READ | REPEATABLE-READ |
+--------------------------------+---------------------------------+
Then, we set READ-UNCOMMITTED
to "transaction_isolation" global variable as shown below:
mysql> SET GLOBAL transaction_isolation = 'READ-UNCOMMITTED';
Then, READ-UNCOMMITTED
is only set to "transaction_isolation" global variable as shown below:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| READ-UNCOMMITTED | REPEATABLE-READ |
+--------------------------------+---------------------------------+
Then, log out MySQL:
mysql> exit
Then, log in MySQL:
C:\Users\kai>mysql -u root -p
Now, READ-UNCOMMITTED
is also set to "transaction_isolation" session variable as shown below:
mysql> SELECT @@global.transaction_isolation, @@session.transaction_isolation;
+--------------------------------+---------------------------------+
| @@global.transaction_isolation | @@session.transaction_isolation |
+--------------------------------+---------------------------------+
| READ-UNCOMMITTED | READ-UNCOMMITTED |
+--------------------------------+---------------------------------+
And for example about "wait_timeout", 28800
is the default value for "wait_timeout" global and session variables as shown below:
mysql> SELECT @@global.wait_timeout, @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 28800 | 28800 |
+-----------------------+------------------------+
Then, we set 1000
to "wait_timeout" global variable as shown below:
mysql> SET GLOBAL wait_timeout = 1000;
Then, 1000
is only set to "wait_timeout" global variable as shown below:
mysql> SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 28800 |
+-----------------------+------------------------+
Then, log out MySQL:
mysql> exit
Then, log in MySQL:
C:\Users\kai>mysql -u root -p
Now, 1000
is not set to "wait_timeout " session variable as shown below:
mysql> SELECT @@global.wait_timeout , @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 28800 |
+-----------------------+------------------------+
So in this case, just set 1000
to "wait_timeout " session variable as shown below;
mysql> SET SESSION wait_timeout = 1000;
Or, set DEFAULT
which is 1000
of "wait_timeout" global variable to "wait_timeout" session variable as shown below:
mysql> SET SESSION wait_timeout = DEFAULT;
Now, 1000
is also set to "wait_timeout" session variable as shown below:
mysql> SELECT @@global.wait_timeout, @@session.wait_timeout;
+-----------------------+------------------------+
| @@global.wait_timeout | @@session.wait_timeout |
+-----------------------+------------------------+
| 1000 | 1000 |
+-----------------------+------------------------+