Documentation Home
MySQL Shell 8.0
Related Documentation Download this Manual
PDF (US Ltr) - 491.7Kb
PDF (A4) - 492.0Kb
HTML Download (TGZ) - 98.8Kb
HTML Download (Zip) - 110.5Kb

MySQL Shell 8.0  /  Using MySQL Shell Commands  /  MySQL Shell Commands

3.1 MySQL Shell Commands

MySQL Shell provides commands which enable you to modify the execution environment of the code editor, for example to configure the active programming language or a MySQL Server connection. The following table lists the commands that are available regardless of the currently selected language. As commands need to be available independent of the execution mode, they start with an escape sequence, the \ character.

Command Alias/Shortcut Description


\h or \?

Print help about MySQL Shell, or search the online help.


\q or \exit

Exit MySQL Shell.


In SQL mode, begin multiple-line mode. Code is cached and executed when an empty line is entered.



Show the current MySQL Shell status.


Switch execution mode to JavaScript.


Switch execution mode to Python.


Switch execution mode to SQL.



Connect to a MySQL Server.


Reconnect to the same MySQL Server.



Specify the schema to use.



Execute a script file using the active language.



Show any warnings generated by a statement.



Do not show any warnings generated by a statement.


View and edit command line history.


Manually update the autocomplete name cache.


Query and change MySQL Shell configuration options.


Run the specified report using the provided options and arguments.


Run the specified report using the provided options and arguments, and refresh the results at regular intervals.



Open a command in the default system editor then present it in MySQL Shell.



Run the specified operating system command and display the results in MySQL Shell.

Help Command

The \help command can be used with or without a parameter. When used without a parameter a general help message is printed including information about the available MySQL Shell commands, global objects and main help categories.

When used with a parameter, the parameter is used to search the available help based on the mode which the MySQL Shell is currently running in. The parameter can be a word, a command, an API function, or part of an SQL statement. The following categories exist:

  • AdminAPI - introduces the dba global object and the InnoDB cluster AdminAPI.

  • Shell Commands - provides details about the available built-in MySQL Shell commands.

  • ShellAPI - contains information about the shell and util global objects, as well as the mysql module that enables executing SQL on MySQL Servers.

  • SQL Syntax - entry point to retrieve syntax help on SQL statements.

  • X DevAPI - details the mysqlx module as well as the capabilities of the X DevAPI which enable working with MySQL as a Document Store

To search for help on a topic, for example an API function, use the function name as a pattern. You can use the wildcard characters ? to match any single character and * to match multiple characters in a search. The wildcard characters can be used one or more times in the pattern. The following namespaces can also be used when searching for help:

  • dba for AdminAPI

  • mysqlx for X DevAPI

  • mysql for ShellAPI for classic protocol

  • shell for other ShellAPI classes: Shell, Sys, Options

  • commands for MySQL Shell commands

  • cmdline for the mysqlsh command interface

For example to search for help on a topic, issue \help pattern and:

  • use x devapi to search for help on the X DevAPI

  • use \c to search for help on the MySQL Shell \connect command

  • use Cluster or dba.Cluster to search for help on the AdminAPI dba.Cluster() operation

  • use Table or mysqlx.Table to search for help on the X DevAPI Table class

  • when MySQL Shell is running in JavaScript mode, use isView, Table.isView or mysqlx.Table.isView to search for help on the isView function of the Table object

  • when MySQL Shell is running in Python mode, use is_view, Table.is_view or mysqlx.Table.is_view to search for help on the isView function of the Table object

  • when MySQL Shell is running in SQL mode, if a global session to a MySQL server exists SQL help is displayed. For an overview use sql syntax as the search pattern.

Depending on the search pattern provided one or more results could be found. If only one help topic contains the search pattern in its title, that help topic is displayed. If multiple topic titles match the pattern but one is an exact match, that help topic is displayed, followed by a list of the other topics with pattern matches in their titles. If no exact match is identified, a list of topics with pattern matches in their titles is displayed. If a list of topics is returned, you can select a topic to view from the list by entering the command again with an extended search pattern that matches the title of the relevant topic.

Connect and Reconnect Commands

The \connect command is used to connect to a MySQL Server. See Section 4.2, “MySQL Shell Connections”.

For example:

\connect root@localhost:3306

If a password is required you are prompted for it.

Use the --mysqlx (--mx) option to create a session using the X Protocol to connect to MySQL server instance. For example:

\connect --mysqlx root@localhost:33060

Use the --mysql (--mc) option to create a ClassicSession, enabling you to use the MySQL protocol to issue SQL directly on a server. For example:

\connect --mysql root@localhost:3306

The use of a single dash with the short form options (that is, -mx and -mc) is deprecated from version 8.0.13 of MySQL Shell.

The \reconnect command is specified without any parameters or options. If the connection to the server is lost, you can use the \reconnect command, which makes MySQL Shell try several reconnection attempts for the session using the existing connection parameters. If those attempts are unsuccessful, you can make a fresh connection using the \connect command and specifying the connection parameters.

Status Command

The \status command displays information about the current global connection. This includes information about the server connected to, the character set in use, uptime, and so on.

Source Command

The \source command is used to execute code from a script at a given path. For example:

\source /tmp/mydata.sql

You can execute either SQL, JavaScript or Python code. The code in the file is executed using the active language, so to process SQL code the MySQL Shell must be in SQL mode.


As the code is executed using the active language, executing a script in a different language than the currently selected execution mode language could lead to unexpected results.

Use Command

The \use command enables you to choose which schema is active, for example:

\use schema_name

The \use command requires a global development session to be active. The \use command sets the current schema to the specified schema_name and updates the db variable to the object that represents the selected schema.

History Command

The \history command lists the commands you have issued previously in MySQL Shell. Issuing \history shows history entries in the order that they were issued with their history entry number, which can be used with the \history delete entry_number command.

The \history command provides the following options:

  • Use \history save to save the history manually.

  • Use \history delete entrynumber to delete the individual history entry with the given number.

  • Use \history delete firstnumber-lastnumber to delete history entries within the range of the given entry numbers. If lastnumber goes past the last found history entry number, history entries are deleted up to and including the last entry.

  • Use \history delete number- to delete the history entries from number up to and including the last entry.

  • Use \history delete -number to delete the specified number of history entries starting with the last entry and working back. For example, \history delete -10 deletes the last 10 history entries.

  • Use \history clear to delete the entire history.

For more information, see Section 5.5, “Code History”.

Rehash Command

When you have disabled the autocomplete name cache feature, use the \rehash command to manually update the cache. For example, after you load a new schema by issuing the \use schema command, issue \rehash to update the autocomplete name cache. After this autocomplete is aware of the names used in the database, and you can autocomplete text such as table names and so on. See Section 5.3, “Code Autocompletion”.

Option Command

The \option command enables you to query and change MySQL Shellconfiguration options in all modes. You can use the \option command to list the configuration options that have been set and show how their value was last changed. You can also use it to set and unset options, either for the session, or persistently in the MySQL Shell configuration file. For instructions and a list of the configuration options, see Section 9.4, “Configuring MySQL Shell Options”.

Pager Commands

You can configure MySQL Shell to use an external pager to read long onscreen output, such as the online help or the results of SQL queries. See Section 4.6, “Using a Pager”.

Show and Watch Commands

The \show command runs the named report, which can be either a built-in MySQL Shell report or a user-defined report that has been registered with MySQL Shell. You can specify the standard options for the command, and any options or additional arguments that the report supports. The \watch command runs a report in the same way as the \show command, but then refreshes the results at regular intervals until you cancel the command using Ctrl + C. For instructions, see Section 6.1.5, “Running MySQL Shell Reports”.

Edit Command

The \edit (\e) command opens a command in the default system editor for editing, then presents the edited command in MySQL Shell for execution. The command can also be invoked using the key combination Ctrl-X Ctrl-E. For details, see Section 5.4, “Editing Code”.

System Command

The \system (\!) command runs the operating system command that you specify as an argument to the command, then displays the output from the command in MySQL Shell. MySQL Shell returns an error if it was unable to execute the command. The output from the command is returned as given by the operating system, and is not processed by MySQL Shell's JSON wrapping function or by any external pager tool that you have specified to display output.