2015.08.26

MySQL

MySQL Community Server 5.7.8がリリースされました

オリジナル版:http://lists.mysql.com/announce/1015

MySQL 5.7.8(マイルストーンリリース)は世界でもっともポピュラーなオープンソースデータベースの新しいバージョンです。これはMySQL 5.7の8番目のマイルストーンリリースです。

このリリースの新機能はベータ品質です。他のプロダクションリリース前と同様にプロダクションレベルのシステムやクリティカルなデータを持つシステムにインストールする場合には十分に注意すべきです。

MySQL 5.7.8はMySQL 5.6のすべての機能を含んでいます。さらに、5.7の独自の機能として以下を実装しています。

・InnoDB、オプティマイザの性能向上

・オンラインでALTER文の実行が可能に

・マルチソースレプリケーション(マスタ:スレーブ=N:1)

詳細は以下のリンクから確認することが出来ます。

http://dev.mysql.com/doc/refman/5.7/en/mysql-nutshell.html

MySQL 5.7.8は、ダウンロード・ページの開発リリースセクションから、ソースコードと多くのプラットフォームのためのバイナリをご利用いただけます。

(※MySQL 5.7.8で利用できるプラットフォームとパッケージのフォーマットはMySQL 5.6と同じです)

http://dev.mysql.com/downloads/

MySQL 5.7.8をインストールする場合は、以下のMySQLのインストールドキュメントを参照してください。

http://dev.mysql.com/doc/refman/5.7/en/installing.html

WindowsパッケージはWindowsインストーラーのための新しいインストーラ、もしくはZIP(ノンインストール)パッケージが利用いただけます。以前のMSIパッケージはもう利用できず、ポイントアンドクリック設定ウィザードと全てのMySQL製品でWindows向けの統一インストーラが利用可能です。

http://dev.mysql.com/downloads/installer/

また、私たちはフィードバック、バグレポート、バグ修正パッチ等を歓迎します
http://bugs.mysql.com/report.php

次の節では、MySQL 5.7.8の変更を記載しています。これはオンラインでも閲覧できます。
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-8.html

Changes in MySQL 5.7.8 (2015-08-03, Release Candidate)

    Note

    This is a release candidate, for use at your own risk.
    Significant development changes take place in release candidate
    releases and you may encounter compatibility issues, such as
    data format changes that require attention in addition to the
    usual procedure of running mysql_upgrade. For example, you
    may find it necessary to dump your data with mysqldump before
    the upgrade and reload it afterward.

    This release adds support for Debian 8 and Ubuntu 15.04.

      * Account Management Notes

      * Backup Notes

      * Configuration Notes

      * JSON Notes

      * Optimizer Notes

      * Packaging Notes

      * Performance Schema Notes

      * Plugin Notes

      * Security Notes

      * Spatial Data Support

      * SQL Mode Notes

      * Functionality Added or Changed

      * Bugs Fixed


    Account Management Notes

      * The maximum length of MySQL user names has been increased
        from 16 characters to 32 characters, which provides
        greater flexibility in choosing the user name part of
        MySQL account names. The change affects permitted user
        names in these contexts:

           + Account-management statements, such as CREATE USER,
             GRANT, REVOKE, and SHOW GRANTS.

           + Statements that support a DEFINER clause, such as
             CREATE PROCEDURE and CREATE VIEW.

           + Other statements with clauses that contain user
             names, such as CHANGE MASTER TO and CREATE SERVER.

           + Columns that store user names in mysql system
             database, INFORMATION_SCHEMA, and Performance Schema
             tables have been widened to accommodate 32
             characters.
        There are no changes in the client/server protocol, which
        exchanges user names as null-terminated strings. However,
        third-party programs that use this protocol to
        communicate may need to be modified if they use or store
        user names based on the assumption of 16 characters
        maximum.
        The increase in maximum user name length has implications
        for MySQL administration:

           + Replication implication: Replication of user names
             longer than 16 characters to a slave that supports
             only shorter user names will fail. However, this
             should occur only when replicating from a newer
             master to an older slave, which is not a recommended
             configuration.

           + Downgrade implication: If a newer server supports
             any accounts with a user name longer than 16
             characters, downgrades to an older version of MySQL
             that supports only shorter names is not possible.
        If you upgrade to this MySQL release from an earlier
        version, you must run mysql_upgrade (and restart the
        server) to incorporate this change in user name length.

      * The CREATE USER statement now supports an IF NOT EXISTS
        clause that causes the statement to produce a warning for
        each named account that already exists, rather than an
        error. The ALTER USER and DROP USER statements now
        support an IF EXISTS clause that cause the statements to
        produce a warning for each named account that does not
        exist, rather than an error. For details, see CREATE USER
        Syntax
        (http://dev.mysql.com/doc/refman/5.7/en/create-user.html),
        ALTER USER Syntax
        (http://dev.mysql.com/doc/refman/5.7/en/alter-user.html),
        and DROP USER Syntax
        (http://dev.mysql.com/doc/refman/5.7/en/drop-user.html).
        These statement variants can be useful in replication
        scenarios when the set of accounts differs between master
        and slave. They also permit scripting account-management
        operations that otherwise would terminate for statement
        errors.


    Backup Notes

      * A new client program, mysqlpump, provides an alternative
        to mysqldump. Significant mysqlpump features include:

           + Parallel processing of databases, and of objects
             within databases, to speed up the dump process

           + For dump file reloading, faster secondary index
             creation for InnoDB tables by adding indexes after
             rows are inserted

           + Better control over which databases and database
             objects (tables, views, stored programs, user
             accounts) to dump

           + Dumping of user accounts as account-management
             statements (CREATE USER, GRANT) rather than as
             inserts into the mysql system database

           + Capability of creating compressed output

           + Progress indicator
        For more information, see mysqlpump --- A Database Backup
        Program
        (http://dev.mysql.com/doc/refman/5.7/en/mysqlpump.html).

    Configuration Notes

      * The default configuration for systemd now sets
        LimitNOFILE to 5000 to increase the number of file
        descriptors available to the MySQL server. This change
        applies to Linux systems on which MySQL installation is
        performed using RPM packages. On such systems, the number
        of descriptors available is often set by the operating
        system to 1024. The change causes the number of
        descriptors to match the --open-files-limit option
        default value of 5000. To configure a different number of
        descriptors, set LimitNOFILE as described at Managing
        MySQL Server with systemd
(http://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html). 

        (Bug #21073014)

    JSON Notes

      * MySQL now supports a native JSON data type that enables
        efficient access to data in JSON (JavaScript Object
        Notation) documents. The JSON data type provides these
        advantages over storing JSON-format strings in a string
        column:

           + Automatic validation of JSON documents stored in
             JSON columns. Invalid documents produce an error.

           + Optimized storage format. JSON documents stored in
             JSON columns are converted to an internal format
             that permits efficient access to document elements.
        Along with the JSON data type, a set of SQL functions is
        available to enable operations on JSON values, such as
        creation, manipulation, and searching. In addition, the
        CONVERT() and CAST() functions can convert values between
        JSON and other types.
        For more information, see The JSON Data Type
        (http://dev.mysql.com/doc/refman/5.7/en/json.html), and
        JSON Functions
        (http://dev.mysql.com/doc/refman/5.7/en/json-functions.html).

    Optimizer Notes

      * The optimizer now is able to use indexes on generated
        columns, even when queries do not refer to such columns
        directly by name. The optimizer recognizes query
        expressions that match definitions of generated columns
        and uses indexes from those columns as appropriate during
        query execution. For details, see Optimizer Use of
        Generated Column Indexes
(http://dev.mysql.com/doc/refman/5.7/en/generated-column-index-optimizations.html). 


      * The optimizer hint capability introduced in MySQL 5.7.7
        has been expanded to subquery execution strategies.
        Subquery hints affect whether to use semi-join
        transformations and which semi-join strategies to permit,
        and, when semi-joins are not used, whether to use
        subquery materialization or IN-to-EXISTS transformations.
        Examples:
          SELECT /*+ SEMIJOIN(FIRSTMATCH, LOOSESCAN) */ * FROM t1 ...;
          SELECT id, a IN (SELECT /*+ SUBQUERY(MATERIALIZATION) */ a 
FROM t1)
          FROM t2;
          SELECT * FROM t2 WHERE t2.a IN (SELECT /*+ 
SUBQUERY(INTOEXISTS) */ a
          FROM t1);

        For more information, see Subquery Optimizer Hints
(http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html#optimizer-hints-subquery). 

        There is also a new duplicateweedout flag for the
        optimizer_switch system variable. This flag enables use
        of optimizer_switch to specify whether to use the
        Duplicate Weedout semi-join strategy, which was not
        previously possible.

      * The optimizer cost model has a new memory_block_read_cost
        parameter in the mysql.engine_cost table representing the
        cost of reading an index or data block from an in-memory
        database buffer.
        Together with the existing io_block_read_cost parameter
        representing the cost of reading a block from disk, this
        change enables cost models for data access methods to
        take into account the costs of reading information from
        different sources; that is, the cost of reading
        information from disk versus reading information already
        in a memory buffer. For the initial implementation, the
        default value of memory_block_read_cost is the same as
        io_block_read_cost. Tuning the values remains as future
        work, although you can change the values to see how that
        affects query performance. For more information, see The
        Optimizer Cost Model
        (http://dev.mysql.com/doc/refman/5.7/en/cost-model.html).
        If you upgrade to this MySQL release from an earlier
        version, you must run mysql_upgrade (and restart the
        server) to incorporate this change into the mysql
        database.


    Packaging Notes

      * For Windows, the MSI installer package no longer includes
        debugging binaries/information components (including PDB
        files). These are available in a separate Zip archive
        named mysql-VERSION-winx64-debug-test.zip for 64-bit and
        mysql-VERSION-win32-debug-test.zip for 32-bit. (Bug
        #18296012)

    Performance Schema Notes

      * Current-event timing now provides more information.
        Previously, while a wait, stage, statement, or
        transaction event was executing, the respective tables
        displayed the event with TIMER_START populated, but with
        TIMER_END and TIMER_WAIT as NULL:
            events_waits_current
            events_stages_current
            events_statements_current
            events_transactions_current

        To make it possible to determine how how long a
        not-yet-completed event has been running, the timer
        columns now are set as follows:

           + TIMER_START is populated (unchanged from previous
             behavior)

           + TIMER_END is populated with the current timer value

           + TIMER_WAIT is populated with the time elapsed so far
             (TIMER_END − TIMER_START)
        To find events that have not yet completed (that is, have
        no END_EVENT_ID) and have taken longer than N picoseconds
        thus far, monitoring applications can use this expression
        in queries:
        WHERE END_EVENT_ID IS NULL AND TIMER_WAIT > N

        (Bug #75156, Bug #20889406)

      * The Performance Schema incorporates these changes:

           + The show_compatibility_56 system variable default
             value, previously ON, has been changed to OFF.
             Applications that require 5.6 behavior should set
             this variable to ON until such time as they have
             been migrated to the new behavior for system
             variables and status variables. See Migrating to
             Performance Schema Variable Tables
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema-variable-table-migration.html) 



           + When the Performance Schema session variable tables
             produced output, they included no rows for
             global-only variables and thus did not fully reflect
             all variable values in effect for the current
             session. This has been corrected so that each table
             has a row for each session variable, and a row for
             each global variable that has no session
             counterpart. This change applies to the
             session_variables and session_status tables.

           + It is no longer required that the
             show_compatibility_56 system variable be OFF for the
             Performance Schema system variable tables to produce
             output. The tables now produce output regardless of
             the variable value. This change applies to the
             global_variables, session_variables, and
             variables_by_thread tables.

           + WHERE clauses for SHOW VARIABLES and SHOW STATUS
             were deprecated in MySQL 5.7.6. This restriction has
             been lifted so that WHERE is supported as before
             5.7.6.

           + The metadata_locks table now displays tablespace
             locks. Rows for these locks have an OBJECT_TYPE
             value of TABLESPACE.

           + The Performance Schema logs wait, stage, statement,
             and transaction events in these history tables:
                 events_waits_history
                 events_waits_history_long
                 events_stages_history
                 events_stages_history_long
                 events_statements_history
                 events_statements_history_long
                 events_transactions_history
                 events_transactions_history_long

             Previously, historical event logging was controlled
             entirely by enabling or disabling history-related
             consumers in the setup_consumers table. These flags
             are global to the server, with the result that
             historical data was collected either for all threads
             or no threads.
             The Performance Schema now uses history consumers in
             conjunction with the setup_actors table to make it
             possible to control collection of historical events
             per host, user, or account (combination of host and
             user). This table has a new HISTORY column that
             indicates whether to collect historical events
             (subject also to which history consumers are
             enabled), and each new foreground thread is matched
             against rows in the table. If a matching row is
             found, its HISTORY value is recorded in the row for
             the thread in the threads table, which also now has
             a HISTORY column.
             Enabling historical event logging for a given
             session can be done independent of enabling
             instrumentation for it. Consequently, you can
             control more precisely what events are logged in
             history tables, with these advantages:
                o A decrease in runtime overhead when historical
                  data is needed only for a subset of the
                  instrumented sessions.
                o A reduction of noise in the history tables,
                  facilitating troubleshooting on busy servers
                  that generate a large number of events.

             For more information, see Pre-Filtering by Thread
(http://dev.mysql.com/doc/refman/5.7/en/performance-schema-pre-filtering.html#performance-schema-thread-filtering),


             The setup_actors Table
             
(http://dev.mysql.com/doc/refman/5.7/en/setup-actors-table.html),
             and The threads Table
             (http://dev.mysql.com/doc/refman/5.7/en/threads-table.html).


           + The threads table now contains a CONNECTION_TYPE
             column that indicates the connection protocol. It
             can be used to determine how the connection was
             made. Permitted values are TCP/IP (TCP/IP connection
             established without SSL), SSL/TLS (TCP/IP connection
             established with SSL), Socket (Unix socket file
             connection), Named Pipe (Windows named pipe
             connection), and Shared Memory (Windows shared
             memory connection).
             Connection-type information is also written to the
             general query log for new connections, and the audit
             log interface was revised to incorporate the
             connection type.
             For more information, see The threads Table
             (http://dev.mysql.com/doc/refman/5.7/en/threads-table.html),
             The General Query Log
             (http://dev.mysql.com/doc/refman/5.7/en/query-log.html),
             and Writing Audit Plugins
             
(http://dev.mysql.com/doc/refman/5.7/en/writing-audit-plugins.html).
        If you upgrade to this MySQL release from an earlier
        version, you must run mysql_upgrade (and restart the
        server) to incorporate these changes into the
        performance_schema database.
        References: See also Bug #20652173, Bug #20684424, Bug
        #20811494.

    Plugin Notes

      * These changes were made for the Rewriter query rewrite
        plugin (see The Rewriter Query Rewrite Plugin
(http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html): 


           + There is now a single installation script,
             install_rewriter.sql. Previously, there were two
             installation scripts, install_rewriter.sql and
             install_rewriter_with_optional_columns.sql, which
             differed in whether they created the pattern_digest
             and normalized_columns columns of the rewrite_rules
             table. install_rewriter.sql now always creates those
             columns, so there is no need for
             install_rewriter_with_optional_columns.sql.

           + The enabled column of the rewrite_rules table is now
             defined as ENUM('YES,'NO') rather than as CHAR(1).
             Correspondingly, to enable a rule, set this column
             to YES rather than Y.
        To upgrade if you have previously installed the Rewriter
        plugin, uninstall it by running the uninstallation script
        first, then run the installation script. After
        reinstalling, load your rewrite rules again (this is
        necessary because uninstalling drops the rules table).
        For instructions, see Installing the Rewriter Query
        Rewrite Plugin
(http://dev.mysql.com/doc/refman/5.7/en/rewriter-query-rewrite-plugin.html#rewriter-query-rewrite-plugin-installation).



    Security Notes

      * Community Edition RPM packages now invoke
        mysql_ssl_rsa_setup during installation to create default
        SSL and RSA key and certificate files. (Bug #20855737)

      * A new system variable, require_secure_transport, enables
        administrators to require all client connections to the
        server to be made using some form of secure transport.
        Qualifying connections are those that use SSL, a socket
        file (on Unix), or shared memory (on Windows). When this
        variable is enabled, the server rejects nonsecure
        connection attempts, which fail with an
        ER_SECURE_TRANSPORT_REQUIRED error.
        This capability supplements per-account SSL requirements,
        which take precedence. For example, if an account is
        defined with REQUIRE SSL, enabling
        require_secure_transport does not make it possible to use
        the account to connect using a Unix socket file.

    Spatial Data Support

      * ST_NumInteriorRing() was added as more a
        standard-compliant alias of ST_NumInteriorRings(). (Bug
        #21362781)

      * All spatial computations now are done using
        Boost.Geometry functions. All older non-Boost-based
        algorithms have been removed. (Bug #21300713)

      * Geometry constructor functions that take WKT or WKB
        values (such as ST_GeomFromText() and ST_GeomFromWKB())
        did not check for trailing garbage bytes. They now reject
        trailing nonwhitespace characters and produce an error.
        (Bug #21198064)

      * The required version of the Boost library for server
        builds has been raised from 1.57.0 to 1.58.0. (Bug
        #20721087)

      * Geometry object constructor functions such as Point() and
        MultiPolygon() now are stricter about rejecting invalid
        arguments. (Bug #20712775)

    SQL Mode Notes

      * In MySQL 5.7.4, the ERROR_FOR_DIVISION_BY_ZERO,
        NO_ZERO_DATE, and NO_ZERO_IN_DATE SQL modes were changed
        so that they did nothing when named explicitly. Instead,
        their effects were included in the effects of strict SQL
        mode (STRICT_ALL_TABLES or STRICT_TRANS_TABLES). The
        intent was to reduce the number of SQL modes with an
        effect dependent on strict mode and make them part of
        strict mode itself.
        However, the change to make strict mode more strict by
        including ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
        NO_ZERO_IN_DATE caused some problems. For example, in
        MySQL 5.6 with strict mode but not NO_ZERO_DATE enabled,
        TIMESTAMP columns can be defined with DEFAULT '0000-00-00
        00:00:00'. In MySQL 5.7.4 with the same mode settings,
        strict mode includes the effect of NO_ZERO_DATE and
        TIMESTAMP columns cannot be defined with DEFAULT
        '0000-00-00 00:00:00'. This causes replication of CREATE
        TABLE statements from 5.6 to 5.7.4 to fail if they
        contain such TIMESTAMP columns.
        The long term plan is still to have the three affected
        modes be included in strict SQL mode and to remove them
        as explicit modes in a future MySQL release. But to
        restore compatibility in MySQL 5.7 with MySQL 5.6 strict
        mode and to provide additional time for affected
        applications to be modified, the following changes have
        been made:

           + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
             NO_ZERO_IN_DATE again have an effect when named
             explicitly. This reverts a change made in MySQL
             5.7.4.

           + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
             NO_ZERO_IN_DATE are no longer part of strict SQL
             mode. This reverts a change made in MySQL 5.7.4.

           + ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
             NO_ZERO_IN_DATE are now included in the default
             sql_mode value, which as a result includes these
             modes: ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES,
             NO_ZERO_IN_DATE, NO_ZERO_DATE,
             ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and
             NO_ENGINE_SUBSTITUTION.
        With the preceding changes, stricter data checking is
        still enabled by default, but the individual modes can be
        disabled in environments where it is currently desirable
        or necessary to do so.
        Although ERROR_FOR_DIVISION_BY_ZERO, NO_ZERO_DATE, and
        NO_ZERO_IN_DATE again can be used separately from strict
        mode, it is intended that they be used together. As a
        reminder, a warning now occurs if they are enabled
        without also enabling strict mode or vice versa.
        References: See also Bug #75439, Bug #20367829.

    Functionality Added or Changed

      * InnoDB: The adaptive hash index search system is now
        partitioned, with each index bound to a specific
        partition, and each partition protected by a separate
        latch. Partitioning is controlled by the
        innodb_adaptive_hash_index_parts configuration option.
        Prior to MySQL 5.7.8, the adaptive hash index search
        system was protected by a single latch (btr_search_latch)
        which could become a point of contention. To reduce
        contention, innodb_adaptive_hash_index_parts is set to 8
        by default. The maximum setting is 512. (Bug #20985298)

      * InnoDB: The new innodb_log_checksum_algorithm option
        specifies how to generate and verify the checksum stored
        in redo log disk blocks. innodb_log_checksum_algorithm
        supports same algorithms as innodb_checksum_algorithm,
        which include innodb, crc32, none, and their associated
        strict forms. Previously, only the innodb algorithm was
        supported for redo log disk blocks.
        innodb_log_checksum_algorithm=innodb is the default
        setting. Thanks to Laurynas Biveinis for the patch. (Bug
        #20531208, Bug #75595)

      * InnoDB: InnoDB now supports page-level compression for
        file-per-table tablespaces. Page compression is enabled
        by specifying the COMPRESSION attribute when creating or
        altering a table. Supported compression algorithms
        include Zlib and LZ4. This feature, which is referred to
        as transparent page compression, relies on sparse file
        and hole punching support. It is supported on Windows
        with NTFS, and on the following subset of MySQL-supported
        Linux platforms where the kernel level provides hole
        punching support:

           + RHEL 7 and derived distributions that use kernel
             version 3.10.0-123 or higher

           + OEL 5.10 (UEK2) kernel version 2.6.39 or higher

           + OEL 6.5 (UEK3) kernel version 3.8.13 or higher

           + OEL 7.0 kernel version 3.8.13 or higher

           + SLE11 kernel version 3.0-x

           + SLE12 kernel version 3.12-x

           + OES11 kernel version 3.0-x

           + Ubuntu 14.0.4 LTS kernel version 3.13 or higher

           + Ubuntu 12.0.4 LTS kernel version 3.2 or higher

           + Debian 7 kernel version 3.2 or higher
        All of the available file systems for a given Linux
        distribution may not support hole punching.
        For more information about this feature, see InnoDB Page
        Compression
(http://dev.mysql.com/doc/refman/5.7/en/innodb-page-compression.html).

      * InnoDB: The new innodb_flush_sync configuration option,
        which is enabled by default, causes the
        innodb_io_capacity setting to be ignored for bursts of
        I/O activity that occur at checkpoints. To adhere to the
        limit on InnoDB background I/O activity defined by the
        innodb_io_capacity setting, disable innodb_flush_sync.

      * InnoDB: The default value for innodb_purge_threads and
        innodb_page_cleaners was changed from 1 to 4. If the
        number of page cleaner threads exceeds the number of
        buffer pool instances, innodb_page_cleaners is
        automatically set to the same value as
        innodb_buffer_pool_instances.

      * InnoDB: Internal server-layer functions were added to
        allow InnoDB purge threads to construct and destroy
        thread handle objects, and to compute virtual generated
        column index values when a table object is not present.
        This enhancement was required to support secondary
        indexes on virtual generated columns.

      * InnoDB: InnoDB now supports secondary indexes on virtual
        generated columns. For more information, see CREATE TABLE
        and Generated Columns
(http://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-generated-columns).



      * InnoDB: Virtual generated column values no longer occupy
        space in database rows. With this change, a table rebuild
        is no longer required when adding or dropping virtual
        generated columns.
        Virtual generated columns are still represented in InnoDB
        metadata. The N_COLS field of INNODB_SYS_TABLES still
        counts virtual generated columns, and INNODB_SYS_COLUMNS
        still includes virtual generated column metadata.
A new INFORMATION_SCHEMA table, INNODB_SYS_VIRTUAL,
        provides metadata about columns upon which virtual
generated columns are based.

       * Replication: The behavior of SET GTID_PURGED has been
        changed so that it does not add any GTIDs to
        Previous_gtids_log_event and does not rotate the binary
        log. Instead the GTIDs are added to the
        mysql.gtid_executed table. This fix ensures that it is
        safe in all cases to use binlog_gtid_simple_recovery=1
        for a server using MySQL 5.7.8 or later, where all binary
        logs were generated by servers using MySQL 5.7.8 or
        later. (Bug #75767, Bug #20470724)

      * Replication: When using a multi-threaded slave, each
        worker thread has its own queue of transactions to
        process. In previous MySQL versions, STOP SLAVE waited
        for all workers to process their entire queue. This logic
        has been changed so that STOP SLAVE first finds the
        newest transaction that was committed by any worker
        thread. Then, it waits for all workers to complete
        transactions older than that. Newer transactions are not
        processed. The new logic allows STOP SLAVE to complete
        faster in case some worker queues contain multiple
        transactions. (Bug #75525, Bug #20369401)

      * The patch number of the C client library is now increased
        for each patch version of the server. This number has the
        format major.minor.patch. (Bug #21341481)

      * The max_statement_time system variable was renamed to
        max_execution_time. The Max_statement_time_exceeded,
        Max_statement_time_set, and Max_statement_time_set_failed
        status variables were renamed to
        Max_execution_time_exceeded, Max_execution_time_set, and
        Max_execution_time_set_failed.
        The MAX_STATEMENT_TIME option for SELECT statements was
        removed because its functionality is now available using
        the more general optimizer hint syntax (see Optimizer
        Hints
       (http://dev.mysql.com/doc/refman/5.7/en/optimizer-hints.html)).
        Statements that begin like this:
        SELECT MAX_STATEMENT_TIME = N ...

        Should be rewritten to begin like this:
        SELECT /*+ MAX_EXECUTION_TIME(N) */ ...

        There are some minor implementation differences between
        the two. MAX_STATEMENT_TIME was not permitted in
        non-top-level SELECT statements such as subqueries, or in
        stored programs, and produced an error.
        MAX_EXECUTION_TIME() is permitted in those contexts, but
        is ignored. (Bug #21306646, Bug #21306392, Bug #21306319)

      * GeometryCollection() with no arguments is now permitted
        as a way to create an empty geometry. (Bug #21127270)

      * Solaris tarball and PKG distributions no longer have -gcc
        in the distribution file names. (Bug #21047137)

      * Previously, the max_digest_length system variable
        controlled the maximum digest length for all server
        functions that computed statement digests. However,
        whereas the Performance Schema may need to maintain many
        digest values, other server functions such as query
        rewrite plugins need only one digest per session.
        Increasing the max_digest_length value has little impact
        on total memory requirements for those functions, but can
        increase Performance Schema memory requirements
        significantly. To enable configuring digest length
        separately for the Performance Schema, its digest length
        is now controlled by the new
        performance_schema_max_digest_length system variable.
        (Bug #20963147)

      * Use of the optimizer cost model was extended to
        estimating index scan costs within
        test_if_cheaper_ordering() for the I/O cost of accessing
        table blocks. (Bug #20947871)

      * mysqldump no longer dumps the sys schema by default. It
        is still possible to dump it by naming it explicitly on
        the command line (for example, mysqldump --databases
        sys). (Bug #20902791)

      * For non-TCP/IP connections, these changes were made when
        --ssl was specified to force SSL to be used:

           + For named pipe and shared memory connections,
             attempts to use SSL now produce an error because
             these connections use non-network protocols.

           + For Unix socket file connections, SSL does not add
             any security. The connection is permitted, but the
             mysql client now produces a warning that SSL does
             not add anything for this connection protocol.
        (Bug #20785409, Bug #21025587)

      * The server now prints more descriptive diagnostic
        messages for bad values of secure_file_priv. (Bug
        #20771331)

      * The libmysqld embedded server took its default
        secure_file_priv value from the
        INSTALL_SECURE_FILE_PRIVDIR CMake option, but cannot
        share the same directory with a non-embedded server. The
        new INSTALL_SECURE_FILE_PRIV_EMBEDDEDDIR option enables a
        separate directory to be specified for libmysqld. The
        default value is NULL. (Bug #20770671)

      * mysql_ssl_rsa_setup now has a --uid=name option that
        enables specifying the owner for any files created by the
        program (if the program is executed as root). (Bug
        #20726413)

      * my_print_defaults now masks passwords. To display
        passwords in cleartext, use the new --show option. In
        addition, The output for client programs invoked with the
        --print-defaults option now masks passwords. (Bug
        #19953365, Bug #20903330)

      * For attempts to create a multiple-column SPATIAL index,
        the server previously returned an "Incorrect arguments to
        SPATIAL INDEX" error. Now it returns
        ER_TOO_MANY_KEY_PARTS ("Too many key parts specified; max
        1 parts allowed"). (Bug #18320371)

      * For tables that contain object information, the
        Performance Schema now uses lowercase stored program
        names. (Bug #17818062)

      * To make the effect of password-change operations more
        clear, mysql_secure_installation now displays the user
        whose password is being changed. (Bug #17343687)

      * The shutdown timeout value in /etc/init.d/mysqld was too
        short for some environments. The value has been increased
        from 60 seconds to 600 seconds. (Bug #76900, Bug
        #20987568)

      * For MySQL install operations on OS X from DMG packages,
        if a a random root account password is generated, it now
        is displayed in a dialog box. (Bug #76792, Bug #20930305)

      * MySQL distributions now include an innodb_stress suite of
        test cases. Thanks to Mark Callaghan for the
        contribution. (Bug #76347, Bug #20717127)

      * The data type for generated columns now permits the
        COLLATE attribute. (Bug #76329, Bug #20709487)

      * Connections for the FEDERATED storage engine now set the
        program_name session connection attribute to federated to
        permit identification of the connection source. (Bug
        #68781, Bug #16555730)

      * Previously, changes to the validate_password plugin
        dictionary file (named by the
        validate_password_dictionary_file system variable) while
        the server was running required a restart for the server
        to recognize the changes. Now
        validate_password_dictionary_file can be set at runtime
        and assigning a value causes the named file to be read
        without a restart.
        In addition, two new status variables are available.
        validate_password_dictionary_file_last_parsed indicates
        when the dictionary file was last read, and
        validate_password_dictionary_file_words_count indicates
        how many words it contains. (Bug #66697, Bug #14588145)

      * The error produced for a COM_FIELD_LIST command with too
        much data was changed from ER_UNKNOWN_COM_ERROR to the
        more informative ER_MALFORMED_PACKET. (Bug #53699, Bug
        #11761229)

      * MySQL distributions no longer include the sql-bench
        directory. The INSTALL_SQLBENCHDIR CMake option has also
        been removed.
        References: See also Bug #21303289.

      * The so-called "fast mutex" code has been removed from the
        server sources. It provides no measurable benefit,
        complicates the code, and is problematic for certain
        architectures such as POWER8. The (undocumented)
        WITH_FAST_MUTEXES CMake option has also been removed.
        References: See also Bug #37703, Bug #11748914, Bug
        #72806, Bug #18871517, Bug #72807, Bug #18871138, Bug
        #72805, Bug #18870931.

      * Work was done to clean up the source code base,
        including: Removal of unneeded CMake checks; removing
        unused macros from source files; reorganizing header
        files to reduce the number of dependencies and make them
        more modular, removal of function declarations without
        definitions.

      * The read_only system variable enables the server to be
        put into read-only mode, in which the server permits
        client updates only from users who have the SUPER
        privilege. A new super_read_only system variable, if
        enabled, prohibits client updates even from users who
        have SUPER. "Super" read-only mode can be useful for
        operations such as preparing a server for a move or
        upgrade because it prevents all client users from
        modifying data, even administrators.

      * mysqld_safe no longer uses the data directory as a
        possible location for setting MYSQL_HOME. (This has been
        deprecated since MySQL 5.0.)

      * A new system variable, disabled_storage_engines, enables
        administrators to designate storage engines that cannot
        be used to create new tables or tablespaces. By default,
        this variable is empty (no engines disabled), but it can
        be set to a comma-separated list of one or more engines.
        Any engine named in the value cannot be used to create
        tables or tablespaces with CREATE TABLE or CREATE
        TABLESPACE, and cannot be used with ALTER TABLE ...
        ENGINE or ALTER TABLESPACE ... ENGINE to change the
        storage engine of existing tables or tablespaces.
        Attempts to do so result in an ER_DISABLED_STORAGE_ENGINE
        error.
        disabled_storage_engines does not restrict other DDL
        statements for existing tables, such as CREATE INDEX,
        TRUNCATE TABLE, ANALYZE TABLE, DROP TABLE, or DROP
        TABLESPACE. This permits a smooth transition so that
        existing tables or tablespaces that use a disabled engine
        can be migrated to a permitted engine by means such as
        ALTER TABLE ... ENGINE permitted_engine.

      * The default value of the table_open_cache_instances
        system variable has been increased from 1 to 16.

    Bugs Fixed

      * Incompatible Change: Internal storage format for VIRTUAL
        generated columns was modified. For MyISAM tables with
        such columns, this is an incompatible change; for
        upgrades, use ALTER TABLE to drop the columns before the
        upgrade and add them again after the upgrade. (Bug
        #21237637)

      * Incompatible Change: The mysql_parser plugin service
        interface defined in the service_parser.h header file was
        incorrect for the case that the MYSQL_DYNAMIC_PLUGIN
        macro was defined. The test for this symbol used the
        wrong name, so the interface did not enable the proper
        code. The test has been corrected, and some adjustments
        made to the API for function pointer members within the
        mysql_parser_service_st structure:

           + Some function pointer names began with
             mysql_parser_, others with mysql_. For consistency,
             function pointer member names that began with
             mysql_parser_ were changed to begin with mysql_.

           + The missing mysql_get_statement_digest function
             pointer member was added.
        These modifications change the service API. Any plugin to
        be used with this version of MySQL that relies on the
        service must be recompiled. (Bug #20856729)

      * InnoDB; Partitioning: In certain rare cases the optimizer
        pruned all partitions for an InnoDB table but failed to
        remove the table from consideration as a source for
        obtaining matches, instead calling for the table to be
        initialized and prepared for fetching records. This
        occurred when the active index was not set during
        initialization. To fix this problem, we now set the
        active index ID during initialization even if there are
        no partitions to select from. This behavior also matches
        the way the same case is already handled in MySQL 5.6.
        (Bug #21211524)

      * InnoDB; Partitioning: Sorted index reads on partitioned
        InnoDB tables added rows to the prefetch cache, which
        could cause rows from the wrong partition since the
        prefetch cache does not support partitioned tables. Now
        the the prefetch cache is disabled in such cases. (Bug
        #20584754)

ここに掲載しているのは修正点の一部となります。 詳しくは以下のリンクをご参照ください。 http://lists.mysql.com/announce/1015 http://lists.mysql.com/announce/1014 http://lists.mysql.com/announce/1013