MySQL 5.7 Release Notes
It is now possible to compile MySQL 5.7 using OpenSSL 1.1.1, enabling compilation support for MySQL 5.7 against OpenSSL even when OpenSSL 1.0.2 reaches End of Life status at the end of 2019.
All MySQL 5.7 builds now use OpenSSL. MySQL no longer supports using yaSSL as the SSL library, and source distributions no longer include yaSSL.
The WITH_SSL
CMake option no longer permits
bundled
(use yaSSL) as a valid value, and the
default option value has changed from bundled
to system
(use the version of OpenSSL
installed on the host system).
The linked OpenSSL library for MySQL Server has been updated to version 1.1.1c. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html. (Bug #29868818)
The sys.schema_unused_indexes
view
now filters out unique indexes. Thanks to Gillian Gunson for the
contribution.
(Bug #24798995, Bug #83257)
The sys.ps_is_consumer_enabled()
function now produces an error rather than returning
NULL
if the argument is an unknown
non-NULL
consumer name.
(Bug #24760317)
Previously, sys
schema sources were
maintained in a separate Git repository. sys
schema sources now are included with and maintained within MySQL
source distributions (under
scripts/sys_schema
).
The sys.version
view is deprecated
and will be removed in a future MySQL version. Affected
applications should be adjusted to use an alternative instead.
For example, use the VERSION()
function to retrieve the MySQL server version.
InnoDB:
An ALTER TABLE ...
ENCRYPTION = 'Y'
operation on a MyISAM table failed to
raise an error indicating that the storage engine does not
support encryption. The INPLACE
algorithm did
not check encryption support before updating metadata in the
.frm
file. To address this issue, an
encryption support flag was added. The
ALTER TABLE ...
ENCRYPTION = 'Y'
operation now checks the flag and
reports an error if the storage engine does not support
encryption.
(Bug #29543447)
InnoDB: Delete marked rows were able to acquire an external read lock before a partial rollback was completed. The external read lock prevented conversion of an implicit lock to an explicit lock during the partial rollback, causing an assertion failure. (Bug #29195848)
InnoDB:
A long running
ALTER TABLE ... ADD
INDEX
operation with concurrent inserts caused
semaphore waits. Thanks to Satya Bodapati for the patch.
(Bug #29008298)
Replication:
A deadlock involving three threads could occur if a
START SLAVE
statement was issued
to start the SQL thread on a slave while the SQL thread was
still in the process of being stopped, and a request for the
slave status was made at the same time. The issue has now been
fixed by releasing a lock earlier while the SQL thread is being
stopped.
(Bug #29697588, Bug #95115)
Replication:
A locking issue in the
WAIT_FOR_EXECUTED_GTID_SET()
function could
cause the server to hang in certain circumstances. The issue has
now been corrected.
(Bug #29550513)
Replication:
On a multi-threaded slave with GTIDs in use and
MASTER_AUTO_POSITION
set to
ON
, following an unexpected halt the slave
would attempt relay log recovery, which failed if relay logs had
been lost, preventing replication from starting. However, this
step was unnecessary as GTID auto-positioning can be used to
restore any missing transactions. In a recovery situation, the
slave now checks first whether
MASTER_AUTO_POSITION
is set to
ON
, and if it is, skips relay log recovery.
(Bug #28830834, Bug #92882)
When generating C source from SQL scripts, Some utf8-encoded characters were split across lines. Thanks to Przemysław Skibiński for the patch. (Bug #30152555, Bug #96449)
SHOW PROCESSLIST
output could
include statements that had completed and were no longer in
process.
(Bug #29999818)
For Solaris, mysqld.cc
contained a
prototype for memcntl()
that is no longer
needed. The prototype has been removed.
(Bug #29953495, Bug #95971)
For Solaris, -DWITH_SSL=system
did
not work when compiling with GCC.
(Bug #29953460, Bug #95970)
MySQL builds configured with -DWITHOUT_SERVER=1
failed.
(Bug #29948728, Bug #95740)
For the keyring_aws
plugin, some valid region
values for the
keyring_aws_region
system
variable were rejected.
(Bug #29933758)
For debug builds, an assertion could be raised during
UNION
queries when computing the
combined data type of a GEOMETRY
column and
SELECT * FROM (SELECT NULL)
.
(Bug #29916900, Bug #95827)
For authentication using an LDAP authentication plugin, if the user DN portion was empty and group mapping was configured, authentication assigned an incorrect user DN and skipped the user search. (Bug #29897624)
mysqlpump produced an error when run against a server older than MySQL 5.7. (Bug #29889253)
A possible integer overflow due to unsigned integer type casting could lead to later buffer overflow due to arbitrary size memory allocation. (Bug #29878914)
Attempted use of a freed object during MeCab plugin initialization caused a segmentation fault. (Bug #29832534)
For MySQL installed using RPM packages, an initialization script that tested server connectivity misbehaved if the client account authenticated using an LDAP authentication plugin. (Bug #29786782)
Improper locking during storage engine initialization could cause a server exit. (Bug #29782379)
On a GTID-enabled server, concurrent execution of
DROP USER
and a prepared
statement that accessed a view could deadlock.
(Bug #29772622)
VS2019 produced compilation errors with debug compilation
selected due to use of the /ZI
flag. Now
/Z7
is used instead.
(Bug #29691691, Bug #95125)
The client library could dereference a null pointer while fetching result set metadata from the server. (Bug #29597896, Bug #30689251)
In READ UNCOMMITTED
isolation
level, a segmentation fault occurred under heavy load from
memcached clients. An externally stored
BLOB
column that was being updated by one
transaction was read by another transaction as having a NULL
value and a non-zero data length.
(Bug #29396364, Bug #93961)
Arguments for the TIMESTAMPADD()
function could be reversed for prepared statements.
(Bug #29268394)
For MySQL Community Edition, the cipher order specified by the
client was used in preference to the order on the server side,
unless the server was configured with an explicit
ssl_cipher
order.
(Bug #26882825)
With the thread_pool
plugin enabled, the
sys.processlist
and
sys.session
views displayed a
thread name rather than the actual user name.
(Bug #25906021, Bug #85976)
The delete_latency
column in the
sys.schema_index_statistics
view
incorrectly referred to the SUM_TIMER_INSERT
column of the Performance Schema
table_io_waits_summary_by_index_usage
table rather than the SUM_TIMER_DELETE
column.
(Bug #25521928)
In output from the
sys.diagnostics()
procedure, the
latency
column for the
user_summary_by_file_io_type
view was
incorrectly displayed in raw picoseconds rather than as a
formatted value.
(Bug #25287996)
MySQL Enterprise Encryption functions could apply Diffie-Hellman (DH) methods to non-DH keys, resulting in unpredictable results or server exit. (Bug #22839007)
Password masking was incomplete for SHOW
PROCESSLIST
and some
INFORMATION_SCHEMA
and Performance Schema
tables.
(Bug #20712046)
The
-DWITH_EXAMPLE_STORAGE_ENGINE=1
CMake option was ignored but should not have
been. If -DWITH_EXAMPLE_STORAGE_ENGINE=0
is
given, the EXAMPLE
storage engine
is built as a plugin.
(Bug #70859, Bug #17772560, Bug #30133062)
References: See also: Bug #18324650.