SET GLOBAL

Sets an engine variable globally.

SET GLOBAL can be used to set two types of variables listed below.

  • Global: When you set a global variable, its value is effective for your current connection to the node and any subsequent connections, initiated by any user.

  • Session that can also be set globally: When you set this type of variable globally, its value is NOT effective for your current connection to the node but is effective for any subsequent connections to the node, initiated by any user.

Most variables have global scope. Those that instead have the scope session that can also be set globally are indicated in the Description column in the Sync Variables Lists and Non-Sync Variables List.

To set a sync variable, you can use SET CLUSTER instead of SET GLOBAL. Both commands are equivalent. The former command is recommended, as the command’s name clearly indicates that the variable is updated cluster-wide.

See the engine variables overview for more information on engine variables.

Syntax

SET GLOBAL variable_name = value

SET @@GLOBAL.variable_name = value

Remarks

  • variable_name is the name of a global engine variable.

  • The @@global.variable_name syntax for engine variables is supported for compatibility with some other database systems. This is similar to MySQL behavior.

  • When you run SET GLOBAL to set a session variable globally, you need to additionally run FLUSH CONNECTION POOLS on every aggregator and restart the SQL session for the new session variable value to take effect.

  • Refer to the Permission Matrix for the required permission.

Example

The following example sets a global variable and retrieves its value.

Set the variable:

SET GLOBAL connect_timeout = 15;

Retrieve its value:

SELECT @@connect_timeout;

Refer Assigning Expressions to Variables for more examples.

Last modified: March 21, 2024

Was this article helpful?