Dear MySQL users,
MySQL Server 5.7.25, a new version of the popular Open Source Database
Management System, has been released. MySQL 5.7.25 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.25 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.25 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.25 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.25 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 release
of MySQL 5.7.24. It may also be viewed online at
http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-25.html
Enjoy!
Changes in MySQL 5.7.25 (2019-01-21, General Availability)
* Deprecation and Removal Notes
* Pluggable Authentication
* Security Notes
* Functionality Added or Changed
* Bugs Fixed
Deprecation and Removal Notes
* The resolveip and resolve_stack_dump utilities are now
deprecated and will be removed in MySQL 8.0. nslookup, host, or
dig can be used instead of resolveip. Stack traces from official
MySQL builds are always symbolized, so there is no need to use
resolve_stack_dump.
Pluggable Authentication
* If the LDAP port number is configured as 636 or 3269, the
plugin now uses LDAPS (LDAP over SSL) instead of LDAP. The port
number is settable using the authentication_ldap_sasl_server_port
or authentication_ldap_simple_server_port system variable.
(LDAPS differs from startTLS.) (Bug #28743563)
* Previously, for LDAP authentication with proxying, LDAP
authentication plugins used the first group name returned by the
LDAP server as the MySQL proxy user account name. The
authentication string for a MySQL account now can specify a list
of groups to match, in preference order, and can optionally map
the matching group name to a specified MySQL proxy user name. See
LDAP Pluggable Authentication
(http://dev.mysql.com/doc/refman/5.7/en/ldap-pluggable-authentication.html).
Security Notes
* The linked OpenSSL library for the MySQL Commercial
Server has been updated to version 1.0.2q. Issues fixed in the
new OpenSSL version are described at
http://www.openssl.org/news/vulnerabilities.html. This change
does not affect the Oracle-produced MySQL Community build of
MySQL Server, which uses the yaSSL library instead. (Bug
#28988091)
Functionality Added or Changed
* Microsoft Windows: The access control granted to clients
on the named pipe created by the MySQL server now is set to the
minimum necessary for successful communication on Windows. Newer
MySQL client software can open named pipe connections without any
additional configuration. If older client software cannot be
upgraded immediately, the new named_pipe_full_access_group server
system variable can be used to give a Windows group the necessary
permissions to open a named pipe connection. Membership in the
full-access group should be restricted and temporary.
Bugs Fixed
* InnoDB: A dangling pointer caused a memory leak. (Bug
#28693568)
* InnoDB: An ON DELETE CASCADE operation on table with a
foreign key constraint and an indexed virtual column caused the
server to exit. (Bug #28470805)
* InnoDB: An incorrectly written DML log involving a
virtual column value raised an assertion. (Bug #28448853)
* InnoDB: Using the O_DIRECT_NO_FSYNC innodb_flush_method
setting could cause the system to hang due to file system
metadata becoming unsynchronized. To prevent this issue from
occurring in O_DIRECT_NO_FSYNC mode, InnoDB now calls fsync()
after creating a new file, after increasing file size, and after
closing a file. The fsync() system call is still skipped after
each write operation. With the changes described above,
O_DIRECT_NO_FSYNC mode can now be safely used on EXT4 and XFS
file systems. (Bug #27309336)
* InnoDB: An assertion was raised when attempting to write
to a tablespace file greater than 4GB in size on a 64-bit Windows
system. The failure was due to a narrowing cast. (Bug #26636815,
Bug #87423)
* Partitioning: Repeated ALTER TABLE statements on
partitioned tables containing BLOB or TEXT columns were not
always handled correctly. (Bug #28491099)
* Partitioning: ALTER TABLE ... EXCHANGE PARTITION did not
work when the partitioned table had one or more partition
definitions using the DATA DIRECTORY option. This fix supports
partitioned tables using the InnoDB storage engine only. (Bug
#19730200)
* Replication: When adding a new member to a group, if the
certification information was too big to transmit, an event was
generated that caused failures in all group members. To avoid
this situation, now if the certification information is too large
an error is generated which makes the joining member leave the
group. (Bug #28900691, Bug #28443958)
* Replication: When stopping replication, any channels that
had pending transactions could cause a deadlock in Group
Replication. (Bug #28636768, Bug #28365855)
* Replication: A patch to correct the handling of quotes
for identifiers in ROLLBACK TO SAVEPOINT statements in the binary
log was not correctly applied to subsequent MySQL versions. (Bug
#28569645)
* Replication: Following a patch in MySQL 5.7.23, LOAD DATA
INFILE statements stopped statement-based replication from a
MySQL 5.7.22 master to a replication slave at a later release.
The problem has now been fixed. (Bug #28541204, Bug #92132)
* Replication: In some circumstances, the CHANGE MASTER TO
statement could not be used on a replication slave if the master
info log had been changed from a table
(master_info_repository=TABLE) into a file
(master_info_repository=FILE). (Bug #28529558)
* Replication: When the system variables
binlog_transaction_dependency_tracking and
binlog_transaction_dependency_history_size were set or read, the
types of lock that were required could result in a deadlock
scenario, because the same locks were also required for working
with the active binary logs. A new lock type is now used instead
for access to the transaction dependency tracking system
variables, so that this deadlock cannot occur. (Bug #28511326,
Bug #91941, Bug #28537209, Bug #92108)
* Replication: The PURGE BINARY LOGS TO 'log_name'
statement failed for binary log files that had been moved to
another location using mysqlbinlogmove. Such files are still
listed in the binary log index file, but they are listed using an
absolute path, rather than a path relative to the directory where
the binary log files are normally stored. MySQL Server can now
locate and purge moved binary log files successfully. (Bug
#28284624)
* Replication: If autocommit was set to 0 for a replication
slave or Group Replication group member where GTIDs were in use
and super_read_only=ON was set, server shutdown was prevented by
a transaction that did not complete. The transaction was
attempting to save GTIDs to the mysql.gtid_executed table, but
the update failed because super_read_only=ON was set. (With
autocommit set to 1, the transaction would complete in this
situation, and the mysql.gtid_executed table would instead be
updated at server startup.) Now, the check for the
super_read_only setting is skipped for this task, so the
transaction is able to save the GTIDs to the mysql.gtid_executed
table and complete regardless of the combination of
super_read_only and autocommit settings. (Bug #28183718)
* Replication: An assertion was raised in debug builds if
an XA ROLLBACK statement was issued for an unknown transaction
identifier when the gtid_next value had been set manually. The
server now does not attempt to update the GTID state if an XA
ROLLBACK statement fails with an error. (Bug #27928837, Bug
#90640)
* Replication: The value returned by a SHOW SLAVE STATUS
statement for the total combined size of all existing relay log
files (Relay_Log_Space) could become much larger than the actual
disk space used by the relay log files. The I/O thread did not
lock the variable while it updated the value, so the SQL thread
could automatically delete a relay log file and write a reduced
value before the I/O thread finished updating the value. The I/O
thread then wrote its original size calculation, ignoring the SQL
thread's update and so adding back the space for the deleted
file. The Relay_Log_Space value is now locked during updates to
prevent concurrent updates and ensure an accurate calculation.
(Bug #26997096, Bug #87832)
* Replication: If the relay log index file was temporarily
locked for viewing by a backup process for a replication slave,
and MySQL Server also attempted to access the file at that time
for rename or delete operations, the backup completed with
warnings, but MySQL Server experienced an unexpected halt. MySQL
Server now retries the file access operation a number of times in
case this or a similar scenario is the explanation and the file
becomes available again before long. (Bug #25839610)
* Replication: With sync_binlog=1 set, if the binary log
was rotated during a commit before the binary log end position
was updated, replication stopped on the slave because the server
attempted to use the old binary log end position with the new
binary log file. The server now compares the binary log file name
with the active binary log file when updating the binary log end
position, so that the issue does not occur. (Bug #22252394, Bug
#25524203, Bug #84752)
* The keyring_aws plugin was missing from Commercial
packages for macOS. The supported macOS versions for this plugin
now are macOS 10.13 and 10.14. (Bug #29051838)
* MySQL Enterprise Firewall did not work well if the
audit_log plugin was installed. (Bug #28930885, Bug #93184)
* The server permitted creation of databases with the same
name as redo log files, which could result in unexpected server
behavior. Such names are no longer permitted as database names.
(Bug #28867993)
* Removal of Sun RPC and XDR from glibc into a separate
libtirpc library caused problems with libasan on some platforms.
(Bug #28785835, Bug #92762, Bug #28897799, Bug #93116)
* In LDAP group search filter values, special characters
were not escaped. Special characters in the user DN now are
escaped with their hexadecimal equivalant as follows:
* => \2a
( => \28
) => \29
\ => \5c
\0 => \00(Bug #28743525)
* A memory leak was caused by GET_LOCK() calls with a zero
timeout that failed due to concurrent connections holding the
same user-level lock. (Bug #28714367)
* mysqlpump did not free all allocated resources when it
encountered an error, resulting in memory leaks. (Bug #28538971,
Bug #92131)
* For debug builds, the server could exit when attempting
to roll back CREATE USER statements. (Bug #28536312)
* Mishandling of deprecated system variables could cause
output from queries on the Performance Schema variables_by_thread
table to be incorrect. (Bug #28515475, Bug #92049)
* On a GTID-enabled server, concurrent statements on the
INFORMATION_SCHEMA.COLUMNS table could deadlock. (Bug #28293047,
Bug #91548)
* Comparing log file names as strings using the memcmp()
function resulted in uninitialized memory read errors. The
comparison now uses the strncmp() function. Thanks to Zsolt
Parragi and Laurynas Biveinis for their contributions. (Bug
#28178776, Bug #90238)
* The optimizer skipped the second column in a composite
index when executing an inner join with a LIKE clause against the
second column. (Bug #28086754)
* CREATE TABLE ... SELECT could create date columns with
"zero" date default values when it should have created them
without a default value. (Bug #28022129)
* The transformation of IN subquery predicates into
semijoins was not handled correctly for a very large number of
tables. (Bug #28004674)
* Server mishandling of SIGHUP signals could result in a
server exit. (Bug #27966483, Bug #90742)
* When the character set of one string comparison operand
was a superset of the character set of the other operand, some
comparisons were disallowed that should be permitted by
converting the operand with the "smaller" character set to the
"larger" character set. utf8mb4 and utf32 are considered to be a
superset of any other encoding. (Bug #27897053, Bug #25642319,
Bug #85224)
* Improper memory handling by account management statements
could result in server misbehavior. (Bug #27820277)
* Executing a prepared statement to do a multiple-row
insert with large number of placeholders consumed excessive
memory and could execute slowly. (Bug #27703912)
* The parser accepted invalid SET statement syntax in
trigger definitions that could result in a server exit. (Bug
#27595603)
* The server failed to start if the keyring_encrypted_file
plugin keyring file was invalid. (Bug #27588064)
* Keyring migration failed with source and destination
keyring plugins of keyring_okv and keyring_encrypted_file,
respectively. (Bug #27493970)
* When executing a prepared statement with a procedure call
with the CURSOR_TYPE_READ_ONLY flag set, the client library hung
if the procedure performed a SELECT that returned an empty result
set. (Bug #27443252, Bug #89214)
* The parser performed some out-of-memory checks
incorrectly. (Bug #25633994)
* When a subquery contained a UNION, the count of the
number of subquery columns was calculated incorrectly. (Bug
#24899924)
* When binlog_format is ROW or MIXED, operations on
temporary tables are not logged. Previously, the exception to
this rule was that when the connection was terminated at the end
of the session, the statement DROP TEMPORARY TABLE IF EXISTS was
logged for any temporary tables that had been opened in the
session. For row-based replication, this behavior caused an
unnecessary write to the binary log, and added a transaction
sequence number for the GTID where these were enabled. Now, when
a temporary table is created in a session, the binary logging
format is tracked. The DROP TEMPORARY TABLE IF EXISTS statement
is only logged at the end of the session if statement-based
format was in effect when the temporary table was created, so the
CREATE TEMPORARY TABLE statement was logged. If row-based or
mixed-format binary logging was in use when the table was
created, the DROP TEMPORARY TABLE IF EXISTS statement is not
logged. Thanks to Laurynas Biveinis for the patch. (Bug
#24670909, Bug #83003, Bug #28606948)
* DML statements using IGNORE were not always handled
correctly on tables having generated columns. (Bug #22990029)
* A query employing a dynamic range and an index merge
could use more memory than expected. (Bug #89953, Bug #27659490)
On Behalf of MySQL Release Engineering Team,
Surabhi Bhat
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql