MySQL Forums
Forum List  »  Announcements

MySQL Community Server 5.7.20 has been released
Posted by: Jocelyn Ramilison
Date: October 16, 2017 07:15AM


Dear MySQL users,

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

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

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

For information on installing MySQL 5.7.20 on new servers, please see
the MySQL installation documentation at

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

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

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

MySQL Server 5.7.20 is also available from our repository for Linux
platforms, go here for details:

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

Windows packages are available via the Installer for Windows or .ZIP
(no-install) packages for more advanced needs. The point and click
configuration wizards and all MySQL products are available in the
unified Installer for Windows:

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

5.7.20 also comes with a web installer as an alternative to the full
installer.

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.

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

http://bugs.mysql.com/report.php

The following link lists the changes in the MySQL 5.7 since the
the release of MySQL 5.7.19.

http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-20.html

Enjoy!

Changes in MySQL 5.7.20 (2017-10-16)
   Audit Log Notes

     * Event-matching filter rules for the audit_log plugin now
       support an abort element, which can be used to prevent
       qualifying events from executing. For more information,
       see Audit Log Filtering
       (http://dev.mysql.com/doc/refman/5.7/en/audit-log-filtering.html).
       This capability can be used, for example, to
       augment the capabilities of MySQL Enterprise Firewall,
       which blocks SQL statements on a per-user basis, by
       writing audit filtering rules that match statements and
       block them based on characteristics of the statements
       themselves.

   Deprecation and Removal Notes

     * Previously, the --transaction-isolation and
       --transaction-read-only server startup options
       corresponded to the tx_isolation and tx_read_only system
       variables. For better name correspondence between startup
       option and system variable names, transaction_isolation
       and transaction_read_only have been created as aliases
       for tx_isolation and tx_read_only. The tx_isolation and
       tx_read_only variables are now deprecated and will be
       removed in MySQL 8.0. Applications should be adjusted to
       use transaction_isolation and transaction_read_only
       instead.

     * The query cache is now deprecated and is removed in MySQL
       8.0. Deprecation includes these items:

          + The FLUSH QUERY CACHE and RESET QUERY CACHE
            statements.

          + The SQL_CACHE and SQL_NO_CACHE SELECT modifiers.

          + These system variables: have_query_cache,
            ndb_cache_check_time, query_cache_limit,
            query_cache_min_res_unit, query_cache_size,
            query_cache_type, query_cache_wlock_invalidate.

          + These status variables: Qcache_free_blocks,
            Qcache_free_memory, Qcache_hits, Qcache_inserts,
            Qcache_lowmem_prunes, Qcache_not_cached,
            Qcache_queries_in_cache, Qcache_total_blocks.

     * The mysql client by default strips comments in statements
       sent to the server, and this behavior is controlled using
       --skip-comments (strip comments), and --comments
       (preserve comments).
       Comment stripping is now deprecated. This feature and the
       options to control it will be removed in a future MySQL
       release.

     * These syntax constructs for table and column references
       are now deprecated and will be removed in a future
       version of MySQL. Instances of these constructs should be
       changed to remove the leading period.

          + .col_name

          + .tbl_name

          + .tbl_name.col_name

   Installation Notes

     * For platforms that use systemd (see Managing MySQL Server
       with systemd
       (http://dev.mysql.com/doc/refman/5.7/en/using-systemd.html)),
       the data directory is initialized if empty at server
       startup. This might be a problem if the data directory is
       a remote mount that has temporarily disappeared: The
       mount point would appear to be an empty data directory,
       which then would be initialized as a new data directory.
       It is now possible to suppress this automatic
       initialization behavior. specify the following line in
       the /etc/sysconfig/mysql file (create the file if it does
       not exist):
       NO_INIT=true
       (Bug #26595288, Bug #87287)

   Packaging Notes

     * mysqlcheck was missing in the MySQL Server Docker image,
       which prevented mysql_upgrade from running. (Bug
       #26400146, Bug #86968)

   Security Notes

     * Certificates automatically generated by mysqld and
       mysql_ssl_rsa_setup now use X509 v3 rather than v1. (Bug
       #26521654)

     * The keyring_okv plugin now supports password-protecting
       the key file used for secure connections. See Using the
       keyring_okv KMIP Plugin
       (http://dev.mysql.com/doc/refman/5.7/en/keyring-okv-plugin.html).

   X Plugin Notes

     * A Mysqlx.Connection.CapabilitiesGet request using MySQL X
       Protocol did not return the complete list of available
       authentication mechanisms. (Bug #26044113)

     * For mixed case or uppercase schema names, the statement
       list_objects could incorrectly report a collection as a
       table. (Bug #25769683)

     * The X Plugin was omitted from the list of plugins to
       include for testing data directory permissions. (Bug
       #24823999)

   Functionality Added or Changed

     * Replication: In previous versions issuing STOP
       GROUP_REPLICATION stopped the plugin but the server still
       accepted transactions. This meant the transactions were
       not transmitted to the group. To make STOP
       GROUP_REPLICATION safer, now super_read_only is set to ON
       immediately upon issuing STOP GROUP_REPLICATION, which
       ensures no transactions are accepted. (Bug #25495067, Bug
       #84795)

     * Replication: The group_replication_member_weight variable
       has been added which enables you to control the election
       of new primaries in single-primary mode. In previous
       versions primary election was based on the member's UUID,
       with the lowest UUID elected as the new primary in the
       event of fail over. Use this variable to assign numeric
       weights to members to ensure that specific members are
       elected, for example during scheduled maintenance of the
       primary or to ensure certain hardware is prioritised.

   Bugs Fixed

     * InnoDB: Invalid error handling code was removed from a
       function related to tablespace import. (Bug #26595476)

     * InnoDB: A check for discarded partitions during a DML
       operation only checked the first partition. Failure to
       check for other discarded partitions caused an assertion
       failure. (Bug #25942592)

     * InnoDB: Replication lag occurred on slave instances
       during large update operations on tables with many
       partitions. (Bug #25687813, Bug #85352)

     * InnoDB: A failure occurred during an end range
       comparison. (Bug #25669686)

     * InnoDB: Enabling the innodb_buffer_pool_load_now setting
       failed in readonly mode. The event that signals the
       buffer pool load thread was not initialized. (Bug
       #25586766)

     * InnoDB: Test-related code intended to simulate a random
       read on a non-existent page raised an invalid assertion.
       (Bug #25479538)
       References: This issue is a regression of: Bug #25053705.

     * InnoDB: A long wait for a dictionary operation lock held
       by a full-text search synchronization operation caused a
       server exit. (Bug #24938374)

     * Partitioning: In certain cases when fetching heap records
       a partition ID could be set to zero. (Bug #86255, Bug
       #26034430)

     * Partitioning: Queries involving NULL were not always
       handled correctly on tables that were partitioned by
       LIST. (Bug #76418, Bug #20748521)
       References: See also: Bug #86255, Bug #26034430.

     * Replication: MySQL internal administration commands that
       update replication-specific repository tables, for
       example during a replication synchronization check using
       the mysqlrplsync utility, can now bypass read locks. This
       enables such commands to execute regardless of the
       settings for the read_only and super_read_only system
       variables and the autocommit mode. (Bug #26414532, Bug
       #86224)

     * Replication: When the Group Replication plugin
       Delayed_initialization_thread failed to start due to
       unavailable resources, a locked mutex was being kept
       behind which would cause issues on
       Delayed_initialization_thread destructor. The fix ensures
       that the mutex is unlocked when the thread fails to
       start. (Bug #26394678)

     * Replication: If hostname resolution was not working for a
       member in Group Replication, the error returned when
       attempting to connect was referring to credentials. The
       error message has been improved to describe the problem
       with hostname resolution. (Bug #26368004)

     * Replication: If the options file contained Group
       Replication related settings the server could stop
       unexpectedly on start up. (Bug #26314472)

     * Replication: FLUSH LOGS attempted to send an OK message
       after having already sent an error response during the
       commit phase. (Bug #26272158)

     * Replication: With some workloads that contained large
       inserts, the XCOM transaction cache could consume a large
       amount of memory. The fix limits the size of the cache to
       reduce the impact to memory usage. (Bug #26241291)

     * Replication: Group Replication partition threads were not
       visible in the Performance Schema tables. (Bug #26241008)

     * Replication: COUNT_TRANSACTIONS_REMOTE_IN_APPLIER_QUEUE
       was set to an incorrect value when
       group_replication_recovery_complete_at="transactions_cert
       ified" on a recovering member. (Bug #26180350)

     * Replication: The values of the
       group_replication_recovery_use_ssl and
       group_replication_recovery_ssl_verify_server_cert
       variables were not being updated when configured for the
       Group Replication recovery channel. (Bug #26142801)

     * Replication: When replicating a partitioned table with an
       index, on a replication slave where HASH_SCAN was
       specified as part of the slave_rows_search_algorithms
       setting, the slave I/O thread sometimes stopped with an
       error HA_ERR_KEY_NOT_FOUND. (Bug #26137159)

     * Replication: group_replication_force_members could be
       used in situations where the group was working properly,
       in other words a majority was reachable. This incorrect
       use could cause instability in the group. Therefore, its
       use has been restricted to the scenario for which it was
       created, for forming a new membership from a subset of a
       previous group's membership when a majority of the
       members are unreachable. (Bug #26093967)

     * Replication: The delayed initialization mechanism used
       for server starts has been improved. Now, it only blocks
       connections until the server is in read mode. (Bug
       #26037344)
       References: See also: Bug #84731, Bug #25475132.

     * Replication: It was possible to set server_uuid to the
       same value as group_replication_group_name. Doing so
       could result in unexpected behavior because GTIDs are
       identified by a UUID. Now it is not possible to set
       server_uuid to the same value as
       group_replication_group_name. (Bug #26035931)

     * Replication: The system variable pseudo_slave_mode, which
       is for internal server use, sometimes raised an assertion
       when it was changed inside a transaction. The server no
       longer changes this variable inside a transaction. (Bug
       #26034192, Bug #86250)

     * Replication: When a primary member, for example the
       primary in single-primary group or in a multi-primary
       group, which also had asynchronous replication channels
       feeding data into it was stopped, the asynchronous
       channels would continue applying changes. Although
       super_read_only was being set when STOP GROUP_REPLICATION
       was issued, this did not stop any running asynchronous
       replication channels which were already running. This
       meant that changes could be made locally on the member,
       and that the asynchronous replication channels had to be
       stopped manually. Now when Group Replication stops,
       either due to an error or when STOP GROUP_REPLICATION is
       issued, all asynchronous replication channels are
       stopped. (Bug #26024253)

     * Replication: When write sets are used for parallelization
       by a replication slave (as specified by the
       binlog_transaction_dependency_tracking system variable),
       empty transactions are now ignored, and the handling of
       relay log rotation has been optimized. (Bug #25982097)

     * Replication: A misleading warning was issued when the
       command FLUSH LOGS or PURGE LOGS BEFORE was used on a
       binary log file with an expiry time set, and the binary
       log file was in use. The warning related to the file
       being in use, and implied that a purge attempt had taken
       place, even if the expiry time had not yet been reached.
       Now, MySQL checks the expiry time of the binary log file
       first, and only then checks whether the file is in use.
       So the warning is only issued for an in-use binary log
       file that is old enough to be purged. (Bug #25973525)

     * Replication: Group Replication stopped unexpectedly when
       more than 1024 file descriptors were in use. (Bug
       #25892493)

     * Replication: Now that XA transactions are prepared and
       committed in two parts, an issue with statement-based
       replication has been identified. If two XA transactions
       committed on the master are being prepared on the slave
       in the inverse order, locking dependencies can occur that
       cannot be safely resolved. The issue is not present with
       row-based replication.
       XA transactions are therefore now considered unsafe for
       statement-based replication.

          + When binlog_format = STATEMENT, a warning is issued
            for DML statements inside XA transactions, and
            replication might fail with deadlock on slaves.

          + When binlog_format = MIXED, DML statements inside XA
            transactions are logged using row-based replication.

          + When binlog_format = ROW, DML statements inside XA
            transactions are logged as before.
       (Bug #25786490, Bug #85639)

     * Replication: If the Group Replication plugin was
       uninstalled while a group was running, the plugin was
       marked for uninstall. This could cause the server
       shutdown to not complete successfully. The fix ensures
       that the Group Replication plugin cannot be uninstalled
       if the majority of the group cannot be reached. In such a
       case it is necessary to issue STOP GROUP_REPLICATION
       before uninstalling the plugin. (Bug #25673788)

     * Replication: Replication clients no longer enable LOCAL
       capability for LOAD DATA statements, because they do not
       use LOAD DATA LOCAL statements. (Bug #24763131)

     * Replication: In case of a failure while creating multiple
       slave applier worker threads, some threads would be left
       orphaned and their resources would not be collected.
       Thanks to Laurynas Biveinis for his contribution to
       fixing this bug. (Bug #24679056, Bug #82980)

     * Replication: The binlog_checksum option cannot be changed
       within a transaction. MySQL cannot log this statement, as
       would be required inside a transaction, while the
       requested function is being performed on the binary log.
       (Bug #22914463)

     * Replication: The logging of Group Replication has been
       improved. Now logging includes information when a member
       joins or leaves, when the view changes, and so on. (Bug
       #84798, Bug #25495393)

     * Compiling with -DWITHOUT_SERVER=1 resulted in
       my_symlink.c compilation failure due to missing #include
       for my_dir.h. Thanks to Christian Hesse for the patch.
       (Bug #26495816, Bug #87137)

     * yaSSL could incorrectly perform TLS cipher negotiation.
       (Bug #26482173)

     * The Linux RPM spec file for RHEL6 and higher is updated
       with comments that recommend installing the
       redhat-rpm-config package to add convenience macros that
       make rebuilding the RPM package easier. Thanks to Simon
       Mudd for the patch. (Bug #26474153, Bug #87098)

     * If the error log was misconfigured and the server could
       not start, no output indicating the problem was produced.
       (Bug #26447825, Bug #87087)

     * mysqld_multi was modified to use mysqld --initialize
       rather than the deprecated mysql_install_db. Thanks to
       Zhan Shi for the patch. (Bug #26446321, Bug #87080)

     * Adding an ORDER BY to a query that included an outer join
       and a subquery caused a constant value defined for a
       column in the subquery to be incorrectly promoted to a
       constant value in the case when the subquery returns 0
       rows. (Bug #26432173)

     * The server failed to check the maximum path length for
       partition names. (Bug #26390632)

     * Identifiers containing a mixture of backslashes and
       backticks could be parsed incorrectly. (Bug #26372491)

     * Source packages for Debian platforms contained prebuilt
       debug binaries, causing build failures on any
       architectures other than the one on which those binaries
       were built. (Bug #26186911)

     * The mysqld_pre_systemd script in RPM packages found the
       error log setting in option files if specified as
       log-error but not as log_error, though both are
       permitted. (Bug #26148391, Bug #86466)

     * When running mysqlbinlog with the
       --read-from-remote-server option, rewrite rules specified
       using the --rewrite-db option were ignored, so data was
       not written to the target database. (Bug #26117735, Bug
       #86288)

     * REFERENCES privilege checking could use the incorrect
       database in some cases. (Bug #26106655)

     * Uninstalling the daemon_memcached plugin caused a serious
       error. (Bug #25909540)

     * The rpl_diff.inc test case file did not find the data
       difference between servers. Thanks to Yura Sorokin for
       the patch. (Bug #25860138, Bug #85838)

     * An ngram fulltext parser search query returned incorrect
       results and raised an assertion. (Bug #25851975)

     * Selecting from a view could yield different results with
       materialization enabled versus materialization disabled.
       (Bug #25782811, Bug #85622)

     * The Performance Schema failed to check the maximum host
       length for client connections. (Bug #25510805)

     * mysqlpump displayed incorrect progress information about
       the number of tables dumped. (Bug #25432850)

     * Some mysqldump warnings went to the standard output
       rather than the standard error output and consequently
       were written to the dump file. (Bug #25380000, Bug
       #82992)

     * LOAD DATA failed to accept multibyte characters that
       followed an escape sequence. (Bug #25147988, Bug #83950,
       Bug #25865525)

     * A server error occurred when a full text search result
       exceeded the innodb_ft_result_cache_limit setting. The
       patch for this bug also backports a related patch (Bug
       #21140111). (Bug #25033538)

     * If a stored function was considered a constant by the
       optimizer, calling it from a subquery in a NOT IN
       condition in the WHERE clause could cause a server exit.
       (Bug #23577867)

     * A mysqldump memory leak was fixed. Thanks to Yura Sorokin
       for the patch. (Bug #23531150, Bug #81714)

     * Incorrect results or a server exit could result when a
       query used Batched Key Access optimization and a virtual
       generated column was part of the join buffer. (Bug
       #23169112)

     * If a session rolled back to a savepoint and then was
       killed, the statements up to the point of the savepoint
       could be committed. (Bug #22350047, Bug #79596)

     * For clients that used Connector/Python and authenticated
       using the sha256_password plugin, the server could handle
       connections incorrectly. (Bug #21421642)

On Behalf of the MySQL/Oracle Release Engineering Team,
Hery Ramilison


Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL Community Server 5.7.20 has been released
17084
October 16, 2017 07:15AM


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.