Known limitations of this release:
On Microsoft Windows, when using the MySQL Installer to install MySQL Server 5.5.30 on a host with an existing MySQL Server of a different version (such as 5.6.10), that also has a different license (community versus commercial), you must first update the license type of the existing MySQL Server. Otherwise, MySQL Installer will remove MySQL Server(s) with different licenses from the one you chose with MySQL Server 5.5.30.
On Microsoft Windows 8, updating a community release to a commercial release requires you to manually restart the MySQL service after the update.
Functionality Added or Changed
When compressed tables were used, the calculation to compute
memory usage within the buffer
pool was complex because the compressed pages could be
smaller than 16KB or the user-specified
page size. Although this
information can be retrieved from the
table, that operation is expensive. The following new status
variables help to simplify calculations involving buffer pool
configuration option from MySQL 5.6 was backported to MySQL 5.5.
This option records each
condition in the MySQL error log, allowing easier
troubleshooting if frequent deadlocks point to application
In RPM packages built for Unbreakable Linux Network,
libmysqld.so now has a version number.
Performance; InnoDB: Some data structures related to undo logging could be initialized unnecessarily during a query, although they were only needed under specific conditions. (Bug #14676084)
Performance; InnoDB: Optimized read operations for compressed tables by skipping redundant tests. The check for whether any related changes needed to be merged from the insert buffer was being called more often than necessary. (Bug #14329288, Bug #65886)
Immediately after a table was created, a query against it would
not use a loose index
scan. The same query might use a loose index scan
ALTER TABLE on the
table. The fix improves the accuracy of the cost estimate for
queries involving the grouping functions
prevents the query plan from being changed by the
ALTER TABLE statement. (The more
stable query plan might or might not use a loose index scan.)
Previously, when attempting to optimize one or more partitions
of a partitioned table that used a storage engine that does not
OPTIMIZE, such as
InnoDB, MySQL reported
Table does not support optimize, doing recreate +
analyze instead, then re-created the entire table,
but did not actually analyze it. Now in such cases, the warning
message is, Table does not support optimize on
partitions. All partitions will be rebuilt and
analyzed. In addition, the entire table is analyzed
after first being rebuilt.
On systems that cannot handle unaligned memory access, depending
on the stack frame alignment, a
could occur during startup. This issue was observed on Solaris
The status variable
could show an inaccurate value, higher than expected, because
some pages in the buffer
pool were incorrectly considered as being brought in by
(Bug #15859402, Bug #67476)
Creating an index on a
column could fail for a table with a character set with varying
length, such as
UTF-8, if the table was
created with the
InnoDB: The server could halt with an assertion error when creating an index on a column prefix for a column using a multibyte character set:
InnoDB: Assertion failure in thread
thread_numin file row0merge.cc line 465 InnoDB: Failing assertion: len == ifield-<fixed_len
InnoDB: The server could halt with an assertion error while creating an index:
InnoDB: Assertion failure in thread
thread_numin file row0merge.cc line 465
If the server crashed at a precise moment during an
ALTER TABLE operation that
rebuilt the clustered
index for an
InnoDB table, the
original table could be inaccessible afterward. An example of
such an operation is
ALTER TABLE ... ADD PRIMARY
KEY The fix preserves the original table if the server
halts during this operation. You might still need to rename the
.ibd file manually to restore the original
table contents: in MySQL 5.6 and higher, rename from
within the database directory; prior to MySQL 5.6, the temporary
file to rename is
InnoDB: A regression introduced by the fix for Bug#14100254 would result in a “!BPAGE->FILE_PAGE_WAS_FREED” assertion. (Bug #14676249)
An error at the filesystem level, such as too many open files,
could cause an unhandled error during an
ALTER TABLE operation. The error
could be accompanied by Valgrind warnings, and by this assertion
Assertion `! is_set()' failed. mysqld got signal 6 ;
(Bug #14628410, Bug #16000909)
A DML operation performed while a
TABLE operation waits for pending I/O operations on
the tablespace to complete would result in a deadlock.
During shutdown, with the
configuration option set greater than 1, the server could halt
prematurely with this error:
mysqld got signal 11
A workaround was to increase
innodb_log_file_size and set
innodb_purge_threads=1. The fix
was backported to MySQL 5.5 and 5.1, although those versions do
not have the
configuration option so the error was unlikely to occur.
If the value of
innodb_force_recovery was less
than 6, opening a corrupted table might loop forever if a
corrupted page was read when calculating statistics for the
table. Information about the corrupted page was written
repeatedly to the error log, possibly causing a disk space
issue. The fix causes the server to halt after a fixed number of
failed attempts to read the page. To troubleshoot such a
corruption issue, set
(Bug #14147491, Bug #65469)
The value of the
variable was not updated consistently for all server releases
for the InnoDB Plugin in MySQL 5.1, and the integrated
InnoDB component in MySQL 5.5, 5.6, and
InnoDB and MySQL Server
development cycles are fully integrated and synchronized, now
the value returned by the
innodb_version variable is the
same as for the
(Bug #13463493, Bug #63435)
TABLE ... REBUILD PARTITION operations could interfere
with one another, even when not running against the same table,
because they both used global memory for storage. Now each
partition rebuild operation stores intermediate data in memory
that is local to that process.
(Bug #14589559, Bug #66645)
Inserting any number of rows into an
ARCHIVE table that used more than
1000 partitions and then attempting to drop the table caused the
MySQL Server to fail.
(Bug #13819630, Bug #64580)
Replication: After dropping a column from the slave's version of a table, then altering the same column of this table on the master (so that a type conversion would have been required had the column not been droppped on the slave), inserts into this table caused replication to fail. (Bug #15888454)
When a binary log is replayed on a server (for example, by
executing a command like mysqlbinlog
mysql), it sets a pseudo-slave mode on the
client connection used, so that the server can read binlog and
apply binary log events correctly. However, the pseudo-slave
mode was not disabled after the binary log dump was read, which
caused unexpected filtering rules to be applied to SQL
statements subsequently executed on the same connection.
When using statement-based replication, and where the master and
the slave used table schemas having different
AUTO_INCREMENT columns, inserts generating
AUTO_INCREMENT values logged for a given
table on the master could be applied to the wrong table on the
Repeated execution of
TO statements using invalid
MASTER_LOG_POS values could lead to errors
and possibly a crash on the slave. Now in such cases, the
statement fails with a clear error message.
(Bug #11764602, Bug #57454)
Replication: If the disk becomes full while writing to the binary log, the server hangs until space is freed up manually. It was possible after this was done for the MySQL server to fail, due to an internal status value being set when not needed. Now in such cases, rather than trying to set this status, a warning is written in the error log instead. (Bug #11753923, Bug #45449)
Microsoft Windows: Dynamic file names (with colons) are no longer allowed. Static file names using the Alternate Data Stream (ADS) NTFS functionality of Microsoft Windows may continue to be used. (Bug #11761752)
Directory name manipulation could result in stack overflow on Mac OS X and Windows. (Bug #16066243)
Joins of exactly 32 tables and containing a
HAVING clause returned an empty result.
A buffer-handling problem in yaSSL was fixed. (Bug #15965288)
mysys library string-formatting routine
could mishandle width specifiers.
In certain cases,
References: See also Bug #13007062.
Metadata locking and table definition cache routines did not always check length of names passed to them. (Bug #15954872)
XA START had a
race condition that could cause a server crash.
Enabling the query cache during high client contention could cause the server to exit. (Bug #14727815)
There was a performance regression for queries using
SELECT ... INTO user variables and a
WHERE condition on one or more of the
variables in the
References: This bug was introduced by Bug #12408412.
The server sometimes failed to respect
MAX_CONNECTIONS_PER_HOUR limits on user
Output generated with mysqldump --routines could produce syntax errors when reloaded. (Bug #14463669)
With the thread pool plugin installed, a workload consisting of
statements and ping queries caused the server to exit.
(Bug #14458232, Bug #14458002)
Passing an unknown time zone specification to
in a memory leak.
For dumps of the
mysqldump skips the
table unless the
option is given. mysqldump now prints a
warning if invoked without
--events that the
mysql.event table is not dumped without that
(Bug #55587, Bug #11762933)
The mysql client could mishandle the
delimiter command if it occurred on a line
mysql was looking for the end of
a quoted string.
(Bug #64135, Bug #13639125)
mysqld_safe used the nonportable
-e test construct.
(Bug #67976, Bug #16046140)
Configuring the server with
could cause a Performance Schema segmentation fault.
(Bug #68008, Bug #16060864)
DECIMAL multiplication operations could
produce significant inaccuracy.
(Bug #45860, Bug #11754279)
For subqueries executing using a
the optimizer could produce an incorrect result containing wrong
(Bug #66845, Bug #14636211)
References: See also Bug #12667154.
UNION type conversion could
incorrectly turn unsigned values into signed values.
(Bug #49003, Bug #11757005)
During the startup process, mysqld could incorrectly remove the PID file of an already running mysqld. (Bug #23790, Bug #11746142)
References: See also Bug #14726272.