Documentation Home
MySQL Shell for VS Code


MySQL Shell for VS Code  /  Welcome

Pre-General Availability: 2023-01-18

Chapter 1 Welcome

MySQL Shell for VS Code enables interactive editing and execution of SQL for MySQL Databases and the MySQL Database Service. It integrates the MySQL Shell directly into Visual Studio Code development workflows.

MySQL Shell Consoles provides with you with MySQL Shell inside a notebook-interface-styled editor. With the GUI Console, you can deploy and manage your InnoDB Cluster, InnoDB ClusterSet, and InnoDB ReplicaSet, using most of the features of MySQL Shell, including AdminAPI, X DevAPI, and ShellAPI.

DB Notebooks offer you a fresh way to work interactively with your databases. Within a notebook editor, you can switch from SQL (with embedded results) to JavaScript or TypeScript to query, manipulate, and visualize your data. In addition, each database connection also supports single-language, full-page editors for long script.

The following table enumerates the basic features of MySQL Shell and indicates which editors support them. It may assist you in choosing whether to interact with MySQL using MySQL Shell's console sessions or by using DB Notebook's interactive and script editors.

MySQL Shell Feature MySQL Shell Console (Shell Sessions) DB Notebooks SQL Sripts, TS Scripts, JS Scripts
Supported Languages SQL, Python, JavaScript SQL (MySQL and SQLite), TypeScript, JavaScript SQL (.sql), TypeScript (.ts), JavaScript (.js)
Interactive Code Execution Yes Yes No
Batch Code Execution Yes Yes Yes
Supported APIs AdminAPI, X DevAPI, and ShellAPI N/A N/A
X Protocol Support Yes Yes Yes
Utilities Yes No No
API Command-Line Integration N/A N/A N/A
Output Formats No No No
Logging and Debug Yes Yes Yes
Global Session Yes No No

Session management

Session management means:

  • User sessions are identified by a universally unique identifier (UUID). The session are logged with a start and end date, and an IP.

  • A user session is continued if a network connection has been dropped.

  • All incoming and outgoing REST API messages during a session are logged.

  • All log messages during a session are stored.

User and groups management

User and Group management means:

  • All users that have access to the user interface of MySQL Shell for VS Code have their account information stored.

  • Each user is at least part of one user group, meaning their personal group.

  • Users can be added to user groups.

  • Each user has at least one profile where module_data is stored.

Privilege management

Privilege management means:

  • One or more roles are assigned to users to give them access to different areas of MySQL Shell for VS Code.

  • Each role can have several privileges assigned that define either the allowed access to Python module functions or MySQL Shell for VS Code modules.

Database connection management

Database Connection management means:

  • Database connections hold all relevant information to establish a database connection.

  • Database connections are assigned to one or more profiles.

Module data management

Module Data management means:

  • Modules can store any form of data, organized in data categories.

  • The module data needs to be organized in tree folder structures, for profiles or user groups.