A known limitation of this release:
On Microsoft Windows, MySQL Installer does not upgrade MySQL Enterprise Backup (MEB) 3.8.1 to 3.8.2 (latest version). A workaround is to uninstall MEB 3.8.1 and then install MEB 3.8.2 (latest version) with MySQL Installer.
Functionality Added or Changed
Previously, program options could be specified in full or as any
unambiguous prefix. For example, the
--compress option could be
given to mysqldump as
--compr, but not as
because the latter is ambiguous. Option prefixes now are
deprecated. They can cause problems when new options are
implemented for programs. A prefix that is currently unambiguous
might become ambiguous in the future. If an unambiguous prefix
is given, a warning now occurs to provide feedback. For example:
Warning: Using unique option prefix compr instead of compress is deprecated and will be removed in a future release. Please use the full name instead.
Option prefixes are no longer supported in MySQL 5.7; only full options are accepted. (Bug #16996656)
comp_err now checks to make sure that new errors are not being added to MySQL 5.1 or 5.5 because the set of errors for these series is frozen. (Bug #16807394)
Performance; Important Change; InnoDB:
InnoDB would fail to open a tablespace that
has multiple data files. This removes the known limitation that
was in MySQL Server 5.6.12.
(Bug #17033706, Bug #69623)
is set to a non-zero value, there was a possibility that all
would be released after each row was read, resulting in a
concurrency check after each read. This could impact performance
of all queries. One symptom could be higher system CPU usage. We
strongly recommend that you upgrade to MySQL Server 5.6.13 if
you use this setting. This could cause a performance drop
between MySQL Server 5.5.x and 5.6.x.
(Bug #68869, Bug #16622478)
CHECK TABLE found a
secondary index that contained the wrong number of entries, it
would report an error but not mark the index as corrupt.
CHECK TABLE now marks the index
as corrupt when this error is encountered, but only the index is
marked as corrupt, not the table. As a result, only the index
becomes unusable until it is dropped and rebuilt. The table is
InnoDB would attempt to gather statistics on
partially created indexes.
INFORMATION_SCHEMA tables for the
InnoDB buffer pool could show an invalid page type for
read-fixed blocks. This fix will show the unknown page type for
blocks that are I/O-fixed for reading.
Valgrind testing returned memory leak errors which resulted from
a regression introduced by the fix for Bug #11753153. The
function would call
failed to call
During an insert buffer merge, InnoDB would invoke
lock_rec_restore_from_page_infimum() on a
potentially invalid record pointer.
InnoDB: Some characters in the identifier for a foreign key constraint are modified during table exports. (Bug #16722314, Bug #69062)
page_zip_validate() consistency check
would fail after compressing a page, in
page_zip_compress(). This problem was caused
page_zip_decompress(), which would fail to
heap_no correctly when a record contained
no user data bytes. A record with no user data bytes occurs
when, for example, a primary key is an empty string and all
secondary index fields are NULL or an empty string.
During a transaction commit,
prepare_commit_mutex is acquired to preserve
the commit order. If the commit operation failed, the
transaction would be rolled back but the mutex would not be
released. Subsequent insert operations would not be able to
acquire the same mutex. This fix frees
When the InnoDB shutdown mode
innodb_fast_shutdown) is set
to 2 and the master thread enters the flush loop, the thread
would not be able to exit under some circumstances. This could
lead to a shutdown hang.
After disabling foreign key checks with
DROP INDEX, the
table was no longer accessible after restarting the server. This
fix allows the table with missing foreign key indexes to be
SET foreign_key_checks=0. When
the table is accessible, the user must recreate the missing
indexes to fulfill the foreign key constraints.
(Bug #16208542, Bug #68148)
InnoDB: Creating a table with a comment or default textual value containing an apostrophe that is escaped with a backslash would sometimes cause the InnoDB storage engine to omit foreign key definitions. (Bug #61656, Bug #12762377)
ALTER TABLE to change
the character set of foreign key columns for a database with
multiple tables with foreign key constraints would leave the
database in an inconsistent state. Subsequent
TABLE operations (using the
fail due to the detected inconsistency. Reversion of the
ALTER TABLE operation
would also fail, resulting in the loss of the table being
altered. When running the same
operation with a
RENAME clause, the
inconsistency would not be detected but if the
TABLE operation failed for some other reason,
reversion of the partially executed
TABLE would fail with the same result.
The bug fix temporarily disables
foreign_key_checks while the previous table
definition is restored.
(Bug #65701, Bug #14227431)
Successive deletes in descending key order would lead to
InnoDB index pages. When an
InnoDB index page is under-filled, it is
merged with the left or right sibling node. The check performed
to determine if a sibling node is available for merging was not
(Bug #68501, Bug #16417635)
commit_threads_m, which was initialized but
never used, has been removed from the code base.
(Bug #60225, Bug #11829813)
When upgrading to MySQL 5.5.31 or higher, a message is written
into the output of mysql_upgrade when
encountering a partitioned table for which the
ALGORITHM option is required to maintain
binary compatibility with the original; the message includes the
ALTER TABLE statement required to
make the change. For such a table having a sufficiently large
number of partitions, the message was truncated with an error
before the complete
ALTER TABLE statement
could be written.
When a range specified in the
of a query against a table partitioned by
RANGE entirely within that of one of the
partitions, the next partition was also checked for rows
although it should have been pruned away.
Suppose we have a range-partitioned table
created using the following SQL statement:
CREATE TABLE t ( id INT AUTO_INCREMENT, dt DATETIME, PRIMARY KEY (dt,id), UNIQUE KEY (id,dt) ) PARTITION BY RANGE COLUMNS(dt) ( PARTITION p0 VALUES LESS THAN ('2013-01-01'), PARTITION p1 VALUES LESS THAN ('2013-01-15'), PARTITION p2 VALUES LESS THAN ('2013-02-01'), PARTITION p3 VALUES LESS THAN ('2013-02-15'), PARTITION pmax VALUES LESS THAN (MAXVALUE) );
An example of a query that exhibited this issue when run against
t is shown here:
SELECT COUNT(*) FROM t WHERE dt >= '2013-02-01' AND dt < '2013-02-15';
In this case, partition
pmax was checked,
even though the range given in the
clause lay entirely within partition
When dropping a partitioned table, the table's
.par file was deleted first, before the
table definition or data. This meant that, if the server failed
during the drop operation, the table could be left in an
inconsistent state in which it could neither be accessed nor
The fix for this problem makes the following changes:
Now, when dropping a partitioned table, the table's
.par file is not removed until all
table data has been deleted.
DROP TABLE of
a partitioned table, in the event that its
.par file is determined to be missing,
.frm file is now
immediately deleted, in effect forcing the drop to complete.
(Bug #13548704, Bug #63884)
Some expressions employing variables were not handled correctly
Linker errors occurred if the header file
log_event.h was included in an application
containing multiple source files, because the file
rpl_tblmap.cc was included in
log_event.h. This fix moves the inclusion of
rpl_tblmap.cc into the source files that use
Installation of Solaris PKG packages could fail to execute
mysql_install_db because it was invoked with
--random-passwords option (which does not
exist until MySQL 5.6).
keycache_* variables (see
Multiple Key Caches) during server startup
could write to incorrect memory.
Removing a server RPM package did not shut down the existing server if it was running. (Bug #16798868)
The code base was modified to account for new warning checks introduced by gcc 4.8. (Bug #16729109)
Upgrading from community SLES RPM packages to commercial packages for the same MySQL version failed with conflict errors. (Bug #16545296)
A user variable referenced during execution of a prepared statement is set to memory that is freed at the end of execution. A second execution of the statement could result in Valgrind warnings when accessing this memory. (Bug #16119355)
Misoptimization of left expressions in prepared statements could cause a server exit. (Bug #16095534)
Out-of-bounds reads could occur within
When running a query on
index_name values, query results would
include index pages without
With the thread pool plugin in use, normal connection
termination caused the
variable to be incremented.
MySQL Installer, if run in custom install or change mode, offered installation options that had no effect. (Bug #12928601)
Incorrect results could be returned from queries that used
aggregate function such as
these referred to different columns of the same composite key.
Assigning the result of a subquery to a user variable raised an
assertion when the outer query included
(Bug #57196, Bug #11764371)
mysqldump assumed the existence of the
tables in the
mysql database. It failed if
invoked to dump tables from an older server where these tables
do not exist.
(Bug #65670, Bug #14236170)
Attempts to build from a source RPM package could fail because
the build process attempted to refer to a
pb2user that might not exist.
(Bug #64641, Bug #13865797, Bug #69339, Bug #16874980)
A typo in
DTrace support from being enabled by
(Bug #60743, Bug #12325449)
RPM source packages did not list
as a dependency, causing builds to fail.
(Bug #69158, Bug #16785036)
Comparison of a
and a string did not work correctly for the
(Bug #68795, Bug #16567381)