MySQL 5.7 Release Notes
Beginning with MySQL 5.7.26, Oracle no longer provides binaries for SUSE 11.
Replication:
Whenever you use
group_replication_allow_local_disjoint_gtids_join
,
which is deprecated, a log message is added.
(Bug #93348, Bug #28971624)
The libevent
library bundled with MySQL was
upgraded to version 2.1.8.
(Bug #28207237, Bug #29041505, Bug #29055011)
The linked OpenSSL library for the MySQL Commercial Server has been updated to version 1.0.2r. 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)
InnoDB:
Optimized InnoDB
internal temporary tables
did not support in-place UPDATE
operations,
which caused the number of delete-marked records to increase
continuously. The large number of delete-marked records could
cause longer than expected query execution times.
(Bug #29207450)
InnoDB: The base column information for a generated column was not stored. (Bug #29021730)
InnoDB:
Assertion code related to the
innodb_flush_method
O_DIRECT_NO_FSYNC
setting was no longer valid
due to a recent modification to that setting. Assertion code was
revised.
(Bug #29007731)
References: See also: Bug #27309336.
InnoDB: Memory leaks discovered in the innochecksum utility were removed. (Bug #28917614, Bug #93164)
InnoDB: A DDL operation that followed a failed attempt to create an index on a virtual column resulted in an assertion failure. (Bug #28825718)
InnoDB: A Linux AIO handler function failed to check if completed I/O events succeeded. Thanks to Wei Zhao for the contribution. (Bug #27850600, Bug #90402)
InnoDB:
A function called by a CREATE
TABLE
thread attempted to access a table object after
it was freed by a background thread.
Thanks to Yan Huang for the patch. (Bug #27373959, Bug #89126)
InnoDB:
Two sessions concurrently executing an INSERT ... ON
DUPLICATE KEY UPDATE
operation generated a deadlock.
During partial rollback of a tuple, another session could update
it. The fix for this bug reverts fixes for Bug #11758237, Bug
#17604730, and Bug #20040791.
(Bug #25966845)
InnoDB:
When the method used to access a joined table was
const
, InnoDB
attempted to unlock the matching row multiple times.
(Bug #20939184)
InnoDB:
The INDEX_LENGTH
value in
INFORMATION_SCHEMA.TABLES
was not
updated when adding an index.
(Bug #19811005)
Partitioning:
An AUTO_INCREMENT
key added to a partitioned
table by an ALTER TABLE
statement
using ALGORITHM=INPLACE
restarted on each
partition.
(Bug #92241, Bug #28573894)
Replication:
If the WAIT_FOR_EXECUTED_GTID_SET()
function
was used with a timeout value including a fractional part (for
example, 1.5
), an error in the casting logic
meant that the timeout was rounded down to the nearest whole
second, and to zero for values less than 1 second (for example,
0.1
). The casting logic has now been
corrected so that the timeout value is applied as originally
specified with no rounding. Thanks to Dirkjan Bussink for the
contribution.
(Bug #29324564, Bug #94247)
Replication:
Depending on the value of
group_replication_exit_state_action
,
the behavior of members exiting a group was not consistent. To
harmonize the behavior of members exiting the group regardless
of the error scenario, now when a member with
group_replication_exit_state_action=READ_ONLY
exits the group unintentionally, the
super_read_only
mode that the
member had when started is restored. This makes the behavior
consistent with that of a member with
group_replication_exit_state_action=ABORT_SERVER
.
(Bug #28971639, Bug #28526591)
Replication: If an applier thread was stopped while it was in the process of opening a table, no error was set, which could result in a segmentation fault or assertion depending on the build type. Error handling is now correctly activated in this situation. (Bug #28864557)
Replication:
With GTIDs in use on the server, the master info log on a
replication slave was being synchronized every time the master
skipped a transaction using the auto-skip function. The process
ends with a dummy heartbeat which is sent to the slave and
caused a forced flush to the log, and this could have a large
cumulative impact on the write load on the slave. The same issue
could occur in a circular replication topology with events that
originated from the same server and were therefore ignored,
which were also handled by the slave with a forced flush to the
log. The slave handling code has now been changed to remove the
forced flush for heartbeat events and for ignored events
received through circular replication, so that the master info
log is only synchronized when appropriate (for example, when a
CHANGE MASTER
statement is issued, or the
binary log is rotated).
(Bug #28815555, Bug #85158)
Replication:
In a replication group configured in single-primary mode
(group_replication_single_primary_mode=ON
,
which is the default), if severe network delays affected the
group, it was possible for the primary and the secondaries to
reach different decisions on a transaction, which could lead to
divergence in the gtid_executed
sets on the
members. The issue has now been fixed.
(Bug #28768550, Bug #28966455, Bug #92690)
Replication:
GRANT
statements that were
written to the binary log were logged incorrectly in some cases,
which could result in a GRANT
statement that executed successfully on the master causing an
error on the replication slave.
(Bug #28643405, Bug #29155451, Bug #93750)
Replication:
If a storage engine has the capability to log in
STATEMENT
format but not in
ROW
format, when
binlog_format
is set to
STATEMENT
, an unsafe SQL statement should be
logged and a warning message should be written to the error log.
However, such statements were instead not executed and an error
message was written to the error log, which is the correct
behavior when binlog_format
is
set to MIXED
or ROW
. The
issue has now been corrected so that unsafe statements are
logged with a warning as expected when
binlog_format
is set to
STATEMENT
.
(Bug #28429993, Bug #73936)
Replication:
On overloaded servers there was a possibility that when a member
joined the group, the VIEW_CHANGE_LOG_EVENT
event which marks that point was not logged in the correct
place. This could lead to errors in the data transfer to the
newly joining server and data divergence. Now, the
VIEW_CHANGE_LOG_EVENT
event is logged in the
correct place in the binary log. In addition, warnings are
logged about the delay in logging the event.
(Bug #93347, Bug #28971594)
Microsoft Windows:
Validity testing for the
named_pipe_full_access_group
system variable did not account for NULL
values.
(Bug #29256690)
The authentication_ldap_simple
plugin could
enforce authentication incorrectly.
(Bug #29637712)
On the Fedora 29 platform, the
compat-openssl10-devel
build dependency was
changed to openssl-devel
.
(Bug #29278747)
If CMake finds a libtirpc
library that is too old to work with MySQL, it tries to use Sun
RPC from glibc
instead.
(Bug #29240701)
With the --users
option,
mysqlpump wrote CREATE
USER
and GRANT
statements to the
output, but too late to apply to the other objects created by
the dump. Consequently, restoring the dump file created the user
accounts too late to apply to other objects created by the file.
mysqlpump now writes user accounts to the
dump file before other objects.
(Bug #29023216)
A damaged mysql.user
table could cause a
server exit.
(Bug #28986737)
The CMake check for tirpc
headers now falls back to using pkgconfig
, to
enable finding the headers on more Linux platforms. This
requires that pkgconfig be installed.
(Bug #28970313, Bug #93341, Bug #28997093)
An attempt to access a null pointer could occur during prepared statement execution. (Bug #28692136)
The Aborted_connects
status
variable was not incremented for unsuccessful connection
attempts, if connections were managed by the
thread_pool
plugin.
(Bug #28490126)
mysqladmin shutdown did not wait for mysqld to shut down. (Bug #28466137, Bug #91803)
References: This issue is a regression of: Bug #25364806.
Repeated invocations of stored procedures which executed queries undergoing short-circuit evaluation were not always handled correctly. (Bug #28379655)
Keyring migration should require only read access to the source keyring, but failed unless the user had write access. (Bug #28339014)
If a user performing a keyring migration did not have write access to the keyring file, the migration failed but reported success in its final error log message. (Bug #28330922)
During FLUSH STATUS
execution, the
Performance Schema unnecessarily aggregated session status to
global status, causing double counts for some status variables.
(Bug #28291258, Bug #91541)
Some status variable values could temporarily increase before returning to their original value. (Bug #27839644, Bug #90351)
Executing ALTER INSTANCE ROTATE INNODB
MASTER KEY
and migrating keys from the
keyring_file
plugin to the
keyring_encrypted_file
plugin could make
encrypted tables unusable.
(Bug #27760952)
The binary file for the udf_example
loadable
function was omitted from binary distributions.
(Bug #26115002, Bug #29178542)
When the server was started with the
skip_name_resolve
system
variable enabled, spurious warnings could be written to the
error log about ignoring accounts with a host name part of
localhost
. (The accounts in fact were used
and not ignored.)
(Bug #23329861, Bug #81441)
Installing and uninstalling a plugin concurrently with client connection activity could cause a server exit. (Bug #22980441)
Some queries involving complex joins leaked file handles. (Bug #90902, Bug #28039829)
Ubuntu 14.04 and SLES 11 are EOL, and no longer supported.