Release Notes for MariaDB Shell 22.12.1

Overview

MariaDB Shell is a command-line tool that unifies troubleshooting and administration for MariaDB database products.

MariaDB Shell 22.12.1 was released on 2023-01-09. This release is a Technical Preview and should not be used in production environments.

Notable Changes

  • On Linux, the ros sub-commands can be used to interact with the Remote Observability Service (ROS). (TENT-208) (TENT-233) (TENT-240)

  • As a security enhancement, when MariaDB Shell prompts for passwords and other sensitive information, the specified string is not printed to the screen. (TENT-199)

  • The ls and dir sub-commands can be used to list databases and tables. (TENT-190)

  • For compatibility with mariadb client, the -e and --execute command-line options can be used to execute queries. (TENT-105)

  • MariaDB Shell enables autocommit by default. (TENT-102) (TENT-235)

  • SQL files can be executed using standard input redirection. (TENT-29)

  • Error messages have been improved. (TENT-162) (TENT-188)

  • The --protocol command-line option can be used to select a protocol. (TENT-219)

    • The options are: mariadb, mysql, xpand, max, maxscale

    • By default, the protocol is mariadb

  • The --help command-line option prints the MariaDB Shell version. (TENT-223)

  • When MariaDB Shell connects using a user with an expired password, MariaDB Shell prompts the user to change their password. (TENT-234)

  • On Linux distributions, the mariadb-shell package is no longer dependent on the package containing mariadb client, which has a different name on different distributions. (TENT-244)

    • On CentOS, RHEL, and Rocky Linux, the dependency on the MariaDB-client package was removed.

    • On Debian and Ubuntu, the dependency on the mariadb-client package was removed.

  • MaxScale CLI integration is supported. (TENT-81)

  • Hot-swappable output style for queries are supported. (TENT-13)

    • To hot-swap the output style for a single query, prefix the query with the output sub-command:

      MariaDB (No Database) » output classic SELECT 1;
      
      Output format changed to classic
      +---+
      | 1 |
      +---+
      | 1 |
      +---+
      

Issues Fixed

Can result in a hang or crash

  • MariaDB Shell can crash in certain edge cases when host is not configured for the connection. (TENT-211)

    • In previous releases, the following error is raised during the crash:

      KeyError: 'host'
      SLAP (9999) - SeaLion has crashed!
      
  • MariaDB Shell can crash in certain edge cases when the system or sys sub-command is used. (TENT-41)

    • In previous releases, the following error is raised during the crash:

      IndexError: list index out of range
      SLAP (9999) - SeaLion has crashed!
      
  • MariaDB Shell can crash when the user does not have privileges to execute the SHOW GRANTS statement. (TENT-210) (TENT-261)

  • When MariaDB Shell streams results, it can consume enough memory to be killed by the operating system's OOM killer. (TENT-246)

Can result in unexpected behavior

  • When the profile sub-command is used to select a profile in an interactive shell, an error is raised. (TENT-204)

    • In previous releases, the following error is raised:

      SLHE (0101) - list index out of range
      
    • Starting with this release, MariaDB Shell should attempt to connect to the server specified by the profile.

  • When the USE statement raises a ERR_BAD_DB_ERROR error code, the selected database changes to None in the prompt. (TENT-198)

  • When Ctrl+c is used in an interactive shell, MariaDB Shell terminates. (TENT-168)

    • Starting with this release, Ctrl+c should cause MariaDB Shell to stop the currently active command without terminating the program.

  • When MariaDB Shell is executed via PuTTY and the modern output format is used, result tables are not properly displayed. (TENT-128) (TENT-226)

  • The warm sub-command can try to warm a table that does not exist. (TENT-191)

  • When the max gui start sub-command fails with a docker.api.client.DockerException, the error is not shown. (TENT-224)

  • When the connect sub-command is used to write connection details to a profile, the plain-text password is printed. (TENT-230)

  • When MariaDB Shell connects to a local database, it can raise errors related to failed SHOW GRANTS statements. (TENT-247)

Install and Upgrade

  • Package versions are inconsistent with the output of mariadb-shell --version on some platforms. (TENT-189)

  • On macOS, the installer is missing the documentation link on the final install step. (TENT-212)

Known Issues

  • This release of MariaDB Shell fails during execution if the installed MariaDB Connector/C package is the package bundled with MariaDB Enterprise Server. (CONPY-243)

    • The following error message can occur upon execution:

        File "/root/.pyenv/versions/3.10.7/lib/python3.10/site-packages/mariadb/__init__.py", line 136, in <module>
        File "/root/.pyenv/versions/3.10.7/lib/python3.10/site-packages/mariadb/__init__.py", line 136, in <genexpr>
      ValueError: invalid literal for int() with base 10: '17-12'
      
    • To use this release of MariaDB Shell, ensure that your MariaDB Connector/C package is the package bundled with MariaDB Community Server, which can be installed from the MariaDB Community Repository.

    • On CentOS, RHEL, and Rocky Linux, the MariaDB Connector/C package is called MariaDB-shared.

    • On Debian and Ubuntu, the MariaDB Connector/C package is called libmariadb3.

  • This release of MariaDB Shell fails during execution if the MariaDB Connector/C package is not installed. (CONPY-243)

    • The following error message can occur upon execution:

        File "/root/.pyenv/versions/3.10.7/lib/python3.10/site-packages/mariadb/__init__.py", line 7, in <module>
      ImportError: libmariadb.so.3: cannot open shared object file: No such file or directory
      
    • To use this release of MariaDB Shell, ensure that the MariaDB Connector/C package is installed.

Platforms

MariaDB Shell 22.12.1 is provided for:

  • Apple macOS (x86_64, M1)

  • CentOS 7 (x86_64)

  • Debian 10 (x86_64)

  • Debian 11 (x86_64)

  • Microsoft Windows (x86_64)

  • Red Hat Enterprise Linux 7 (x86_64)

  • Red Hat Enterprise Linux 8 (x86_64)

  • Red Hat Enterprise Linux 9 (x86_64)

  • Rocky Linux 8 (x86_64)

  • Rocky Linux 9 (x86_64)

  • Ubuntu 18.04 (x86_64)

  • Ubuntu 20.04 (x86_64)

  • Ubuntu 22.04 (x86_64)

Installation