query

Description

A convenience wrapper for executing arbitrary SQL queries on a node on this host.

The --password flag is optional and specifies the SingleStore root password. You can use this flag in conjunction with the --user flag to specify a SingleStore user that is different from the root user and the user’s password. Note that the MEMSQL_PASSWORD environment variable is a safer alternative option for setting the password.

Wrap the password string in single quotes (') to avoid having the shell try to interpret any special characters included in the string.

Usage

Usage:
  memsqlctl query [flags]

Flags:
  -h, --help                   Help for query
      --host string            The cluster-addressable hostname for the node
      --memsql-id string       The node ID of the node to query
  -p, --password STRING        The database user's password
      --port PORT              The cluster-addressable port for the node
      --row-timeout duration   Maximum time to wait for each row in the result (e.g., 30s, 10m, 1.5h); defaults to 1 minute (default 1m0s)
  -e, --sql string             The SQL query to run
      --user string            The database user

Global Flags:
  -c, --config FILE_PATH                     Path to the memsqctl config file
      --default-install-dir DIRECTORY_PATH   Path to the default install directory
      --insecure-ssl                         Fall back to insecure SSL connections to local nodes if memsqlctl is unable to otherwise establish a connection (ADVANCED)
  -j, --json                                 Print output in JSON format
      --node-metadata-file FILE_PATH         Path to the node metadata file
      --parallelism POSITIVE_INTEGER         Maximum amount of operations to be run in parallel
      --ssl-ca FILE_PATH                     The path to the CA certificate file (in PEM format) to authenticate the database certificate
      --timeout duration                     Maximum time for operation to complete (e.g., 30s, 10m, 1.5h)
      --verbose-json                         Print output in JSON format, include some warnings and user messages
  -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

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

  • The memsqlctl query command is equivalent to the sdb-admin query command.

Output

The following shows how to use the query command to run SHOW DATABASES against the master aggregator on the local host.

sudo memsqlctl query --sql "SHOW DATABASES"
+-------+------------+--------+------+---------------+---------+
| Index | MemSQL ID  |  Role  | Port | Process State | Version |
+-------+------------+--------+------+---------------+---------+
| 1     | 29EB592436 | Master | 3306 | Running       | 6.5.14  |
| 2     | 035F453938 | Leaf   | 3307 | Running       | 6.5.14  |
+-------+------------+--------+------+---------------+---------+
Select an option: 1
+--------------------+
|      Database      |
+--------------------+
| clister            |
| information_schema |
| memsql             |
+--------------------+

Another example executes the same query on the master aggregator from its local host without specifying the memsql-id of the master aggregator node and printing the output in JSON format.

sudo memsqlctl list-nodes -q -r master | xargs -I % sudo memsqlctl query --sql "SHOW DATABASES" --memsql-id % --json
{
  "columns": [
    "Database"
  ],
  "rows": [
    {
      "Database": "cluster"
    },
    {
      "Database": "information_schema"
    },
    {
      "Database": "memsql"
    }
  ]
}

Last modified: April 22, 2024

Was this article helpful?