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. (WL #12903)
-
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 permitsbundled
(use yaSSL) as a valid value, and the default option value has changed frombundled
tosystem
(use the version of OpenSSL installed on the host system). (WL #13289)
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 returningNULL
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 (underscripts/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 theVERSION()
function to retrieve the MySQL server version. (WL #12673)
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. TheINPLACE
algorithm did not check encryption support before updating metadata in the.frm
file. To address this issue, an encryption support flag was added. TheALTER 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 toON
, 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 whetherMASTER_AUTO_POSITION
is set toON
, and if it is, omits the step of calculating the transactions that should be skipped or not skipped, so that the old relay logs are not needed and recovery can proceed without them. (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 formemcntl()
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 thekeyring_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 aGEOMETRY
column andSELECT * 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 storedBLOB
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, thesys.processlist
andsys.session
views displayed a thread name rather than the actual user name. (Bug #25906021, Bug #85976)The
delete_latency
column in thesys.schema_index_statistics
view incorrectly referred to theSUM_TIMER_INSERT
column of the Performance Schematable_io_waits_summary_by_index_usage
table rather than theSUM_TIMER_DELETE
column. (Bug #25521928)In output from the
sys.diagnostics()
procedure, thelatency
column for theuser_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 someINFORMATION_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, theEXAMPLE
storage engine is built as a plugin. (Bug #70859, Bug #17772560, Bug #30133062)References: See also: Bug #18324650.