MySQL Forums
Forum List  »  Announcements

MySQL Utilities 1.4.1 alpha has been released
Posted by: Jocelyn Ramilison
Date: December 17, 2013 03:21PM

Dear MySQL users,

MySQL Utilities v1.4.1 is an alpha release of the pure Python
command-line database administration utilities for MySQL.

MySQL Utilities version 1.4.1 is compatible with MySQL Server
versions 5.1 and greater, but should work with earlier versions
(greater than v4.1). Python v2.6 and v2.7 are supported.

In addition to server utilities, the MySQL Utilities will also contain
MySQL Fabric: a framework for managing a collection of MySQL servers.
MySQL Fabric is deployed as a separate service daemon that contain
support for high-availably and sharding.

The management framework keep a database of the servers in the
collection available and provide an easy-to-use command line interface
for adding, removing, and organizing servers.

High-availability is supported by continuously monitoring the servers
and executing slave promotion when the master crashes. It is possible
to maintain a federation of independent "groups" of servers holding a

MySQL Fabric comes with built-in support for sharding either using
ranges or consistent hashing and support sharding of multiple tables
to ensure that rows with matching sharding keys are stored on the same
shard. MySQL Fabric also contain support for global tables that are
duplicated on all shards as well as schema updates.

To provide high performance and avoid latency, transactions are routed
by Fabric-aware connectors instead of a proxy. The connectors dispatch
transactions to the correct shard, perform load-balancing, and handle
read-write splitting. Currently there exists Fabric-aware versions of
Connector/Python, Connector/Java, and Connector/PHP (through a
Fabric-aware mysqlnd_ms plugin).

MySQL Utilities v1.4.1 is available for download from

A brief summary of changes is listed below. Please check the
CHANGES.txt file inside the distribution for a more complete list
of changes.

Functionality Added / Changed (2013-12-17)

  * A new --license parameter was added to display the license
    text, and the --version parameter was updated to show the
    license type. (Bug #17634676)

  * An Installer package (DMG) was added for Mac OS X.
    A workaround was to compile the MySQL Utilities from source.
    (Bug #17347424, Bug #70123)

  * The mysqlfrm utility now has the ability to produce a valid
    .frm file with the storage engine changed for any table that
    can be read by the .frm Reader in default mode. This ability
    requires you to specify --new-storage-engine and --frmdir
    (used to create and place .frm files, and the directory must
    exist). (Bug #17242369)

  * Performance improvements, including multiprocessing support,
    was added to the mysqldbexport, mysqldbimport and mysqldbcopy
    utilities. Performance improvements include:

       + Multiprocessing by database for non-POSIX systems
         (Microsoft Windows) and by table for POSIX systems, using
         the new --multiprocess option.

       + A new --output-file parameter was added to store the
         export results instead of using the (slower) standard
         output. Export results are now always sent to a file, and
         only to stdout and the end if required.

       + Multiprocessing by file (independent of the operating
         system), using the new --multiprocess option.

       + Perform only a single COMMIT at the end of importing each
         file, by default. A new --autocommit option was added to
         allow each statement to be committed upon its execution.

       + The bulk insert feature was improved (supports SQL
         statements). If the --bulk-insert option is enabled, then
         all INSERT statements are parsed and their data
         aggregated (if possible) in order to be executed as a
         single query.

       + A new --max-bulk-insert option was added to control the
         maximum size of the bulk insert, in order to avoid broken
         pipe errors. When the maximum number of INSERT statements
         is reached, then a new bulk insert is created.

       + Multiprocessing by database for non POSIX systems
         (Microsoft Windows) and by table for POSIX systems, using
         the new --multiprocess option.

       + Remove/disable the previous thread feature.
    (Bug #14725390)

Bugs Fixed

  * Checks are now made to force that a MySQL server belongs to a
    single group. (Bug #17929077, Bug #71125)

  * The mysqlmetagrep utility now emits an informative notice if
    an unsupported object type is passed in, such as
    "--search-objects=function" or "--object-types=function", when
    before it threw an unhandled exception. (Bug #17908146)

  * The required version of Connector/Python is now v1.0.8 or
    greater. (Bug #17864266)

  * Attempting to use the mysqldbcopy utility to copy a database
    with one or more blob fields would fail, and emit an error
    such as "TypeError: not all arguments converted during string
    formatting". (Bug #17722274)

  * On Microsoft Windows, the mysqlfabric script would not execute
    easily due to it missing a file extension. The file is now
    A workaround was to pass the script to a python executable,
    such as python scripts\mysqlfabric. (Bug #17639666, Bug

  * With Fabric, the checkpoint routine could cause deadlocks.
    (Bug #17633546, Bug #71127)

  * The help for the --rpl mysqldbexport utility parameter was
    improved to clarify that a destination/slave server cannot be
    specified for export. (Bug #17633465)

  * The mysqldbcopy and mysqldbexport utilities were creating
    views before user-defined functions or procedures. As result,
    the copy or export would fail if at least one of the views was
    using user-defined functions or procedures. Now, the functions
    and procedures are processed before the views. (Bug #17622298,
    Bug #70648)

  * On Microsoft Windows, starting Fabric could hang due to
    insufficient resources when used with a 32-bit build of Python
    on a 64-bit Windows system. Error handling was also improved
    for related use cases. (Bug #17592301, Bug #71128)

  * On Microsoft Windows, attempting to install the MySQL
    Utilities from source would fail, as required a
    "/etc" directory. (Bug #17555531, Bug #70512)

  * Improvements were made to the mysqldbcopy MUT tests. (Bug

  * Error reporting in the mysqluc utility was improved to clarify
    which utilities are generating the errors. (Bug #17510350)

  * The mysqlauditadmin utility would unnecessarily set
    "audit_log_flush = ON" during a rotate operation. (Bug

  * The mysqldbcopy utility could emit an error and exit when
    cloning a database with foreign key constraints that pointed
    to multiple tables. (Bug #17474810)

  * On Microsoft Windows, the list-commands parameter of the
    mysqlfabric utility did not function. (Bug #17454423, Bug

  * The mysqlindexcheck utility now informs the user when there
    was not enough data collected to produce a list of "best" and
    "worst" queries, when before it would seemingly ignore the
    table. (Bug #17457402, Bug #70339)

  * In MUT, the 'drop database' functionality is now centralized
    and reused throughout MUT, when before it was defined in
    multiple files. (Bug #17423074)

  * On Microsoft Windows, the mysqluc utility would crash after
    clicking the home button in MySQL Workbench. (Bug #17415167)

  * The Debian MySQL Utilities packages could not be installed if
    the installed Connector/Python package had a different license
    type, as the license type of both packages had to be
    identical. It is now possible to install a commercial version
    of Connector/Python with a GPL version of MySQL Utilities, or
    vice-versa. (Bug #17393742)

  * When MySQL Utilities was installed using the RPM package, it
    was not possible to upgrade with a newer version, or change
    the license type from another RPM package to another without
    manually removing the installed package. (Bug #17393523)

  * After executing the mysqluserclone utility without the
    optional --source parameter, which then attempted to use the
    default credentials, an unhandled exception would be thrown if
    the default credentials were invalid. The --source parameter
    is now required. (Bug #17217461)

  * The login-path feature, as set in .mylogin.cnf, did not allow
    for login paths with special characters, such as dashes. (Bug

  * When the mysqlfailover connection to the master was killed,
    occasionally it caused an automatic fail over. mysqlfailover
    will now attempt to reconnect to the master, and after 3
    attempts it will assume that the master is down. The
    connection to the master is not maintained between the
    reporting intervals. (Bug #17066910, Bug #69213)

  * The mysqlserverinfo utility parsed error messages raised
    during the server connection, which could suggest actions that
    the user could take to fix the errors, such as using the start
    option when the server was offline. The error numbers are now
    used for the same purpose instead of parsing the error
    messages. (Bug #16386941)

  * The server_info_errors test was unable to execute successfully
    on Microsoft Windows, and was temporary disabled. It is now
    enabled again, and was adjusted to function properly. (Bug

  * The mysqlserverinfo utility output did not display information
    about the error, general, slow query. and audit log files.
    (Bug #14181681)

  * The mysqlserverclone utility did not check if the server
    passed to the --server parameter was local to the machine that
    mysqlserverclone was being executed on. (Bug #13773247)

  * The mysqlprocgrep utility did not provide an option to search
    and kill processes by ID. The --match-id parameter was added,
    which searches processes by ID and allows them to be killed by
    ID. (Bug #13572964)

  * The --body parameter of the mysqlmetagrep utility now supports
    views. (Bug #13563921)

  * The --character-set option was added to utilities that allow
    the user to define the client character set used for the MySQL
    connection, such as mysqldbexport and mysqldbimport. If this
    option is not provided, then the character set retrieved from
    the MySQL Server variable character_set_client is used. (Bug


The source distribution includes the manual pages for each utility under
the docs/ folder.

Reporting Bugs
We welcome and appreciate your feedback and bug reports:


On Behalf of the MySQL/ORACLE RE Team,


Options: ReplyQuote

Written By
MySQL Utilities 1.4.1 alpha has been released
December 17, 2013 03:21PM

Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.