MySQL Shell 8.0  /  Configuring MySQL Shell  /  MySQL Shell Commands

4.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 \?

Prints help about MySQL Shell commands.


\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

Help Command

The \help command can be used with or without parameters. When used without parameters a general help is printed including information about:

  • Available commands.

  • Available commands for the active mode.

When used with a parameter, the parameter must be a valid command. If that is the case, help for that specific command is printed including:

  • Description

  • Supported aliases if any

  • Additional help if any

For example:

\help connect

If the parameter is not a valid command, the general help is printed.

Connect and Reconnect Commands

The \connect command is used to connect to a MySQL Server using an URI type string. See Section 2.1.2, “Connecting using a URI String”.

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 \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:

  • Use \history save to save the history manually.

  • Use \history delete entrynumber to delete a 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 is ommitted, history entries are deleted from firstnumber up to the last entry. If lastnumber goes past the last found history entry number, it deletes up to the last entry.

  • Use \history clear to delete the entire history.

For more information, see Section 2.4, “MySQL Shell 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.