update-config

Sets an engine variable whose value is loaded when a node starts.

Usage

Usage:
  memsql-admin update-config [flags]

Flags:
  -a, --all                  update all nodes in the cluster
  -h, --help                 help for update-config
      --key string           the configuration key to update
      --memsql-id MemsqlID   the MemSQL ID of the node
      --reset                reset the key to the default value
      --set-global           execute the associated SET GLOBAL statement
      --value string         the value to set for the key

Global Flags:
      --cache-file FILE_PATH         File path for the Toolbox node cache
  -c, --config FILE_PATH             the Toolbox configuration file path
  -j, --json                         Enable JSON output
      --parallelism int              Maximum amount of operations to be run in parallel
      --runtime-dir DIRECTORY_PATH   where to put Toolbox runtime data
      --state-file FILE_PATH         the Toolbox state file path
  -v, --verbosity count              Increase logging verbosity
  -y, --yes                          Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default

Remarks

For the target MemSQL nodes, update-config instructs each node, on startup, to set the engine variable (specified by the --key) to the --value.

If --set-global is specified, update-config will connect to the node (if the process is running) and run SET GLOBAL, setting the variable specified by the --key to the --value. This enables the variable’s value to be set before the node restarts.

If --delete is specified, it will delete the existing key and value.

This command is interactive unless you use either the --yes or --json flags to override interactive behavior.

If the engine variable (specified by the --key) is a sync variable:

  • You must specify the --memsql-id of the master aggregator.
  • You must specify the --set-global parameter.
  • You cannot specify the --all parameter.

Example 1

The following example sets the general_log engine variable on all nodes on the local machine.

memsql-admin update-config --all --set-global --key "general_log" --value "PARTIAL"

Output:

Toolbox is about to run 'memsqlctl update-config --key general_log --value PARTIAL --set-global'
on the following nodes:
    - On host 127.0.0.1:
      + 24084C82FD8E4342EF61ED4D85105A1CF5A264F5
      + B72DD1417CBAEAC04FD71ED3E0CAC81A723DB43C

Would you like to continue? [y/N]: y
✓ Updated configuration on 127.0.0.1  
Operation completed successfully

Example 2

The following example attempts to set a sync variable on a leaf node.

memsql-admin update-config --memsql-id B72DD1417CBAEAC04FD71ED3E0CAC81A723DB43C --set-global
--key "default_distributed_ddl_timeout" --value "15"

As expected, update-config fails with the following error:

Variable default_distributed_ddl_timeout must be set on a Master Aggregator

To correct this error, run memsql-admin update-config using the --memsql-id of the master aggregator.

Was this article useful?