Skip to content

mysql/mysql-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6,175 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySQL Shell

Copyright (c) 2016, 2026, Oracle and/or its affiliates.

MySQL Shell is part of MySQL Server and provides an interactive console for JavaScript, Python, and SQL. It supports MySQL development and administration, and includes utilities for dump/load, upgrade readiness checks, and management of high-availability MySQL topologies.

Key Features

Dump and Load Utilities

MySQL Shell includes full-featured dump and load utilities to export MySQL instances and schemas to files and load them back efficiently.

Supported features include:

  • Create and restore logical backups for MySQL
  • Dump, load and copy entire MySQL instances, schemas and tables including users, stored procedures and functions
    • Multi-threaded and consistent
    • Include and exclude individual objects
    • Built-in support for compression and cloud storage in all major cloud providers
    • Optional checksums
  • Migrate databases to the OCI MySQL HeatWave Service
  • Dump and restore MySQL binary logs
  • And more!

Use the built-in help for details on specific commands and options (see Documentation).

MySQL Upgrade Checker

MySQL Shell includes an upgrade readiness checker to help assess compatibility when upgrading MySQL Server versions.

MySQL InnoDB Clusters and AdminAPI

MySQL Shell offers a management interface for MySQL clustering solutions through the AdminAPI, including:

  • MySQL InnoDB Cluster
  • MySQL InnoDB ReplicaSet
  • MySQL InnoDB ClusterSet

MySQL InnoDB Cluster is a turnkey, integrated solution for high availability and horizontal scaling, built on MySQL replication technologies. MySQL InnoDB ClusterSet is an integrated solution for disaster recovery, built on InnoDB Cluster. MySQL InnoDB ReplicaSet is an integrated solution for replication management, providing simplified administration of asynchronous replication between MySQL instances.

MySQL Group Replication and Asynchronous Replication can be combined with MySQL Router to provide an end-to-end solution for distributed MySQL deployments.

The AdminAPI in MySQL Shell enables you to work with MySQL InnoDB Cluster, InnoDB ReplicaSet, and InnoDB ClusterSet, providing an integrated solution for high availability and scalability using InnoDB-based MySQL databases (differently from NDB Cluster) without requiring advanced MySQL expertise.

For full documentation on supported topologies/solutions:

MySQL REST Service Management

MySQL Shell provides a SQL based management interface for MRS, the MySQL REST Service. MRS allows you to create zero-code REST endpoints for MySQL databases, served through a MySQL Router plugin. For more information about MRS, see: https://dev.mysql.com/doc/dev/mysql-rest-service/latest/#what-is-the-mysql-rest-service

MySQL Shell for Visual Studio Code

A GUI frontend for MySQL Shell is also available via the MySQL Shell for VS Code extension, which integrates MySQL Shell capabilities into the VS Code environment.

You may download it directly from VS Code by searching for "MySQL Shell" or from https://marketplace.visualstudio.com/items?itemName=Oracle.mysql-shell-for-vs-code

MySQL Server Version Compatibility

All MySQL users are strongly encouraged to always upgrade to the latest version of MySQL Shell, regardless of the MySQL Server version they're using.

The latest version of MySQL Shell is fully backwards compatible with all supported versions of MySQL Server (9.x and 8.4).

MySQL Shell also supports older versions of MySQL (8.0 and older) for a variety of specific purposes in a best-effort basis:

  • Basic SQL query functionality (MySQL 5.7 and 8.0)
  • Upgrade Checker (MySQL 5.7 and 8.0)
  • Dump and load utilities (MySQL 5.6, 5.7 and 8.0)
    • Note: downgrades (loading dumps into older MySQL servers than the original) are not supported, although they might work in some cases.
  • AdminAPI (MySQL 8.0)

Downloads

Pre-compiled MySQL Shell binaries (and source packages) are available from:

https://dev.mysql.com/downloads/shell/

Compiling from Source

Instructions for compiling MySQL Shell from source are available in:

  • INSTALL.md

Documentation

Full documentation for MySQL Shell:

https://dev.mysql.com/doc/mysql-shell/en/

API references:

Built-in Help

MySQL Shell includes a built-in help system. Reference documentation for most commands can be obtained with the \h or \? built-in command.

Example:

MySQL JS > \h util.dumpInstance
NAME
      dumpInstance - Dumps the whole database to files in the output directory.

SYNTAX
      util.dumpInstance(outputUrl[, options])

WHERE
      outputUrl: Target directory to store the dump files.
      options: Dictionary with the dump options.
...

Reporting Bugs

Please file bugs and feature requests at https://bugs.mysql.com

Contributing

See CONTRIBUTING.md

License

License information can be found in the LICENSE file.

This distribution may include materials developed by third parties. For license and attribution notices for these materials, please refer to the LICENSE file.

About

MySQL Shell is a command line scriptable shell for MySQL, with support for logical backups, InnoDB Cluster management and more. It supports SQL, JavaScript and Python.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors