List:Announcements« Previous MessageNext Message »
From:laasya Date:March 28 2014 12:05pm
Subject:MySQL Community Server 5.6.17 has been released
View as plain text  
Dear MySQL users,

MySQL Server 5.6.17, a new version of the popular Open Source
Database Management System, has been released. MySQL 5.6.17 is
recommended for use on production systems.

For an overview of what's new in MySQL 5.6, please see  

     Starting with 5.6.11, Microsoft Windows packages for MySQL 5.6
     are available both as a "full" installer and as a "web" installer.
     The full installer is significantly larger and comes bundled with
     the latest software releases available. This bundle makes it easy
     to download and configure a full server and development suite.

     The web installer doesn't come bundled with any actual products
     and instead relies on download-on-demand to fetch only the
     products you choose to install. This makes the initial download
     much smaller but increases install time as the individual products
     will need to be downloaded.

For information on installing MySQL 5.6.17 on new servers or upgrading
to MySQL 5.6.17 from previous MySQL releases, please see  

MySQL Server is available in source and binary form for a number of
platforms from our download pages at  

Not all mirror sites may be up to date at this point in time, so if you
can't find this version on some mirror, please try again later or choose
another download site.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc:  

The following section lists the changes in the MySQL source code since
the previous released version of MySQL 5.6. It may also be viewed
online at


Changes in MySQL 5.6.17 (Not yet released)

    Functionality Added or Changed

      * Incompatible Change: The AES_ENCRYPT() and AES_DECRYPT()
        functions now permit control of the block encryption mode and
        take an optional initialization vector argument:

           + The new block_encryption_mode system variable controls
             the mode for block-based encryption algorithms. Its
             default value is aes-128-ecb, which signifies encryption
             using a key length of 128 bits and ECB mode.

           + An optional init_vector argument provides an
             initialization vector for encryption modes that require

           + A random string of bytes to use for the initialization
             vector can be produced by calling the new RANDOM_BYTES()
        For more information, see Encryption and Compression Functions

        These changes make statements that use AES_ENCRYPT() or
        AES_DECRYPT() unsafe for statement-based replication and they
        cannot be stored in the query cache. Queries that use
        RANDOM_BYTES() are unsafe for statement-based replication and
        cannot be stored in the query cache.

      * InnoDB: MySQL now supports rebuilding regular and partitioned
        InnoDB tables using online DDL

        ) (ALGORITHM=INPLACE) for the following operations:

           + OPTIMIZE TABLE

           + ALTER TABLE ... FORCE

           + ALTER TABLE ... ENGINE=INNODB (when run on an InnoDB
             Online DDL

             .html) support reduces table rebuild time and permits
             concurrent DML, which helps reduce user application
             downtime. For additional information, see Overview of
             Online DDL

        (Bug #13975225)

      * On Solaris, mysql_config --libs now includes
        -R/path/to/library so that libraries can be found at runtime.
        (Bug #18235669)

      * mysql_install_db provides a more informative diagnostic
        message when required Perl modules are missing. (Bug #69844,
        Bug #18187451)

      * The IGNORE clause for ALTER TABLE is now deprecated and will
        be removed in a future version of MySQL. ALTER IGNORE TABLE
        causes problems for replication, prevents online ALTER TABLE
        for unique index creation, and causes problems with foreign
        keys (rows removed in the parent table).

    Bugs Fixed

      * Important Change; InnoDB; Partitioning: The FLUSH TABLES
        statement's FOR EXPORT option is now supported for partitioned
        InnoDB tables. (Bug #16943907)

      * InnoDB: The server would halt with an assertion in
        lock_rec_has_to_wait_in_queue(lock) due to a locking-related
        issue and a transaction being prematurely removed from
        trx_sys->rw_trx_set. (Bug #17320977)

      * InnoDB: Running a SELECT on a partitioned table caused a
        memory access violation in memcpy(). (Bug #18383840)

      * InnoDB: An invalid memmove in fts_query_fetch_document would
        cause a serious error. (Bug #18229433)

      * InnoDB: For full-text queries, a failure to check that
        num_token is less than max_proximity_item could result in an
        assertion. (Bug #18233051)

      * InnoDB: innodb_ft_result_cache_limit now has a hardcoded
        maximum value of 4294967295 bytes or (2**32 -1). The maximum
        value was previously defined as the maximum value of ulong.
        (Bug #18180057, Bug #71554)

      * InnoDB: InnoDB would fail to restore a corrupt first page of a
        system tablespace data file from the doublewrite buffer,
        resulting in a startup failure. (Bug #18144349, Bug #18058884)

      * InnoDB: An UPDATE resulted in a memory access error in
        lock_rec_other_trx_holds_expl. The transaction list
        (trx_sys->rw_trx_list) was traversed without acquiring the
        transaction subsystem mutex (trx_sys->mutex). (Bug #18161853)

      * InnoDB: A regression introduced by Bug #14329288 would result
        in a performance degradation when a compressed table does not
        fit into memory. (Bug #18124788, Bug #71436)

      * InnoDB: The maximum value for innodb_thread_sleep_delay is now
        1000000 microseconds. The previous maximum value (4294967295
        microseconds on 32-bit and 18446744073709551615 microseconds
        on 64-bit) was unnecessarily large. Because the maximum value
        of innodb_thread_sleep_delay is limited by the value set for
        innodb_adaptive_max_sleep_delay (when set to a non-zero
        value), the maximum value for innodb_thread_sleep_delay is now
        the same as the maximum value for
        innodb_adaptive_max_sleep_delay. (Bug #18117322)

      * InnoDB: A full-text tokenizer thread would terminate with an
        incorrect error message. (Bug #18021306)

      * InnoDB: Attempting to uninstall the InnoDB memcached plugin
        while the InnoDB memcached plugin is still initializing would
        kill the InnoDB memcached daemon thread. Uninstall should wait
        until initialization is complete. (Bug #18038948)

      * InnoDB: In debug builds, creating a unique index on a binary
        column, with input data containing duplicate keys, would cause
        an assertion. (Bug #18010711)

      * InnoDB: The srv_monitor_thread would crash in the
        lock_print_info_summary() function due to a race condition
        between the srv_monitor_thread and purge coordinator thread.
        (Bug #17980590, Bug #70430)

      * InnoDB: Attempting to add an invalid foreign key when foreign
        key checking is disabled (foreign_key_checks=0) would cause a
        serious error. (Bug #17666774)

      * InnoDB: For debug builds, the table rebuilding variant of
        online ALTER TABLE, when run on tables with BLOB columns,
        would cause an assertion in the row_log_table_apply_update
        function. For normal builds, a DB_PRODUCTION error would be
        returned. (Bug #17661919)

      * InnoDB: When creating a table there are a minimum of three
        separate inserts on the mysql.innodb_index_stats table. To
        improve CREATE TABLE performance, there is now a single COMMIT
        operation instead of one for each insert. (Bug #17323202, Bug

      * InnoDB: Server shutdown would result in a hang with the
        following message written to the error log: "[NOTE] InnoDB:
        Waiting for purge thread to be suspended." (Bug #16495065)

      * InnoDB: InnoDB would fail to start when innodb_data_file_path
        specified the data file size in kilobytes by appending K to
        the size value. (Bug #16287752)

      * InnoDB: An insert buffer merge would cause an assertion error
        due to incorrectly handled ownership information for
        externally stored BLOBs.
        InnoDB: Assertion failure in thread thread_num in file
        line 4080
        InnoDB: Failing assertion: rec_get_deleted_flag(rec, page_is_comp(pag
        (Bug #14668683)

      * InnoDB: Decreasing the auto_increment_increment value would
        have no affect on the next auto-increment value. (Bug
        #14049391, Bug #65225)

      * Partitioning: When the index_merge_intersection flag (enabled
        by default) or the index_merge_union flag was enabled by the
        setting of the optimizer_switch system variable, queries
        returned incorrect results when executed against partitoned
        tables that used the MyISAM storage engine, as well as
        partitioned InnoDB tables that lacked a primary key. (Bug
        References: See also Bug #16862316, Bug #17588348, Bug

      * Replication: The MASTER_SSL_CRL and MASTER_SSL_CRLPATH options
        are not available when using yaSSL; MySQL Replication now sets
        these to NULL automatically whenever yaSSL is enabled. (Bug

      * Replication: Setting --slave-parallel-workers to 1 or greater
        and starting the slave caused the slave SQL thread to use but
        not release memory until the slave was restarted with STOP
        SLAVE and START SLAVE. (Bug #18001777, Bug #71197)

      * Replication: When a slave was configured with replication
        filters and --log-warnings=2, every statement which was
        filtered caused an entry to be written in the error log. For
        busy servers which generated many statements to be filtered,
        the result was that the error log could quickly grow to many
        gigabytes in size. Now a throttle is used for such errors, so
        that an error message is printed only once in a given
        interval, saying that this particular error occurred a
        specific number of times during that interval. (Bug #17986385)

      * Replication: SHOW SLAVE STATUS used incorrect values when
        reporting MASTER_SSL_CRL and MASTER_SSL_CRLPATH. (Bug
        #17772911, Bug #70866)
        References: This bug was introduced by Bug #11747191.

      * Replication: Binary log events could be sent to slaves before
        they were flushed to disk on the master, even when sync_binlog
        was set to 1. This could lead to either of those of the
        following two issues when the master was restarted following a
        crash of the operating system:

           + Replication cannot continue because one or more slaves
             are requesting replicate events that do not exist on the

           + Data exists on one or more slaves, but not on the master.
        Such problems are expected on less durable settings
        (sync_binlog not equal to 1), but it should not happen when
        sync_binlog is 1. To fix this issue, a lock (LOCK_log) is now
        held during synchronization, and is released only after the
        binary events are actually written to disk. (Bug #17632285,
        Bug #70669)

      * Replication: When running the slave with
        --slave-parallel-workers at 1 or greater, setting
        --slave-skip-errors=all caused the error log to be filled with
        with instances of the warning Slave SQL: Could not execute
        Query event. Detailed error: ;, Error_code: 0. (Bug #17581990,
        Bug #68429)
        References: See also Bug #17986385.

      * Replication: A number of possible state messages used as
        values for the PROCESSLIST_STATE column of the Performance
        Schema threads table were longer than the width of the column
        (64 characters).
        The long state messages are now silently truncated in order to
        avoid errors. This fix applies in MySQL 5.6 only; a permanent
        fix for the issue is made in MySQL 5.7 and later. (Bug

      * Replication: The server did not handle correctly the insertion
        of a row larger than 4 GB when using row-based replication.
        (Bug #17081415)

      * Replication: When using row-based replication, an additional
        auto-increment column on the slave version of a table was not
        updated correctly; a zero was inserted instead. (Bug
        #17066269, Bug #69680)

      * Replication: Statements involving the Performance Schema
        tables should not be written to the binary log, because the
        content of these tables is applicable only to a given MySQL
        Server instance, and may differ greatly between different
        servers in a replication topology. The database administrator
        should be able to configure (INSERT, UPDATE, or DELETE) or
        flush (TRUNCATE TABLE) performance schema tables on a single
        server without affecting others. However, when replicating
        from a MySQL 5.5 master to a MySQL 5.5 or later slave,
        warnings about unsafe statements updating Performance Schema
        tables were elevated to errors. For MySQL 5.6 and later
        slaves, this prevented the simultaneous use of
        performance_schema and GTIDs (see Replication with Global
        Transaction Identifiers

        This fix causes all updates on tables in the
        performance_schema database to be filtered on the master and
        not replicated, regardless of the type of logging that is in
        effect. Prior to this fix, statements using were handled by
        being marked as unsafe for replication, which caused warnings
        during execution; the statements were nonetheless written to
        the binary log, regardless of the logging format in effect.
        Existing replication behavior for tables in the
        INFORMATION_SCHEMA database is not changed by this fix.
        For more information, see MySQL Performance Schema

        l). (Bug #16814264)
        References: See also Bug #14741537, Bug #18259193.

      * Replication: Modifying large amounts of data within a
        transaction can cause the creation of temporary files. Such
        files are created when the size of the data modified exceeds
        the size of the binary log cache (max_binlog_cache_size).
        Previously, such files persisted until the client connection
        was closed, which could allow them to grow until they
        exhausted all available disk space in tmpdir. To prevent this
        from occurring, the size of a temporary file created in this
        way in a given transaction is now reset to 0 when the
        transaction is committed or rolled back. (Bug #15909788, Bug
        #18021493, Bug #66237)

      * Replication: The server checks to determine whether
        semisynchronous replication has been enabled without a lock,
        and if this is the case, it takes the lock and checks again.
        If semisynchronous replication was disabled after the first
        but prior to the second one, this could cause the server to
        fail. (Bug #14511533, Bug #66411)
        References: See also Bug #17920923.

      * Replication: Semisynchronous replication became very slow if
        there were many dump threads (such as from mysqlbinlog or
        slave I/O connections) working at the same time. It was also
        found that semisynchronous master plugin functions were called
        even when the dump connections did not support semisynchronous
        replication, which led to locking of the plugin lock as well
        as wasting time on necessary code.
        After this fix, non-semisynchronous dump threads no longer
        call semisynchronous master functions to observe binary
        events. (Bug #70218, Bug #17434690)

      * mysql_install_db could hang while reading /dev/random to
        generate a random root password. (Bug #18395378)

      * Compilation failed if MySQL was configured with CFLAGS set to
        include a -Werror option with an argument. (Bug #18173037)

      * A shared libmysqld embedded server library was not built on
        Linux. (Bug #18123048, Bug #16430656, Bug #68559)

      * While printing the server version, the mysql client did not
        check for buffer overflow in a string variable. (Bug

      * Building MySQL from source on Windows using Visual Studio 2008
        would fail with an identifier not found error due to a
        regression introduced by the patch for Bug#16249481. (Bug

      * On Microsoft Windows, the rw-lock backup implementation for
        the my_atomic_* functions was always used. Now, the native
        Microsoft Windows implementation is used, where available.
        (Bug #18054042)

      * When tables are reopened from the table cache and the current
        thread is not instrumented for the Performance Schema, a table
        handle was unnecessarily instrumented. (Bug #18047865)

      * The audit log plugin could cause a server exit during log file
        rotation operations when there were many operations happening
        for multiple connections. (Bug #17930339)

      * The SUM_SORT_MERGE_PASSES column value in the Performance
        Schema events_statements_summary_by_digest table was
        calculated incorrectly. (Bug #17938255)

      * If the Performance Schema events_statements_summary_by_digest
        table was full when a statement with a new digest was found,
        the Performance_schema_digest_lost status variable was not
        incremented. (Bug #17935314)

      * The optimizer could push down a condition when the index did
        not have the key part present in the condition. (Bug

      * Contraction information in a collation could be mishandled,
        resulting in incorrect decisions about whether a character is
        part of a contraction, and miscalculation of contraction
        weights. (Bug #17760379)

      * DROP TRIGGER succeeded even with the read_only system variable
        enabled. (Bug #17503460)

      * Old clients (older than MySQL 5.5.7) failed to parse
        authentication data correctly if the server was started with
        the --default-authentication-plugin=sha256_password option.
        (Bug #17495562)

      * If used to process a prepared CALL statement for a stored
        procedure with OUT or INOUT parameters,
        mysql_stmt_store_result() did not properly set the flags
        required to retrieve all the result sets. (Bug #14492429, Bug

      * When run by root, mysqld --help --verbose exited with a
        nonzero error code after displaying the help message. (Bug
        #70058, Bug #17324415)

      * MySQL client programs from a Community Edition distribution
        could not connect using SSL to a MySQL server from an
        Enterprise Edition. This was due to a difference in
        certificate handling by yaSSL and OpenSSL (used for Community
        and Enterprise, respectively). OpenSSL expected a blank
        certificate to be sent when not all of the --ssl-ca,
        --ssl-cert, and --ssl-key options were specified, and yaSSL
        did not do so. To resolve this, yaSSL has been modified to
        send a blank certificate when an option is missing. (Bug
        #68788, Bug #16715064)

      * The mysqladmin, mysqlbinlog, mysqlcheck, mysqldump,
        mysqlimport, mysqlslap, and mysqlshow programs now support a
        --secure-auth option that prevents sending passwords to the
        server in old (pre-4.1) format. This option is enabled by
        default; use --skip-secure-auth to disable it. (Bug #69051,
        Bug #16723046)

      * A deadlock error occurring during subquery execution could
        cause an assertion to be raised. (Bug #69969, Bug #17307201)

      * The Performance Schema stage/sql/Waiting to get readlock
        instrument is no longer used and has been removed. (Bug
        #71298, Bug #18035404)

      * A query that creates a temporary table to find distinct values
        and has a constant value in the projected list could produce
        incorrect results. (Bug #70657, Bug #17634335)

      * Messages written by the server to the error log for LDML
        collation definition problems were missing the collation name.
        (Bug #68144, Bug #16204175)

      * mysqlcheck did not correctly handle table names containing
        dots. (Bug #68015, Bug #16064833)

      * Aggregating the results of a subquery in the FROM clause could
        produce incorrect results. (Bug #71244, Bug #18014565)

      * For system variables that take a string value, SET statements
        permitted an unquoted value, but values that contained dots
        were parsed incorrectly and only part of the value was
        assigned. For example, SET GLOBAL slow_query_log_file =
        my_slow.log assigned the value my_slow. Now such values must
        be quoted or an error occurs. (Bug #69703, Bug #17075846)

      * The msql2mysql, mysql_convert_table_format, mysql_find_rows,
        mysql_fix_extensions, mysql_setpermission, and mysqlaccess
        utilities are now deprecated and will be removed in MySQL 5.7.
        (Bug #27482, Bug #69012, Bug #69014, Bug #69015, Bug #69016,
        Bug #69017, Bug #11746603, Bug #16699248, Bug #16699279, Bug
        #16699284, Bug #16699317, Bug #18179576)

On Behalf of the MySQL/ORACLE RE Team,

Laasya Moduludu

MySQL Community Server 5.6.17 has been releasedlaasya28 Mar