Functionality Added or Changed
YEAR(2) data type is now
deprecated because it is problematic. Support for
YEAR(2) will be removed in a
future release of MySQL. For more information, see
YEAR(2) Limitations and Migrating to YEAR(4).
client-side authentication plugin is intended for authentication
schemes that require the server to receive the password as
entered on the client side, without hashing. Because the
password is sent in the clear, this plugin should be used within
the context of a secure connection, such as an SSL connection,
to avoid exposing the password over the network. To make
inadvertent use of this plugin less likely, it is now required
that clients explicitly enable it. This can be done several
environment variable to a value that begins with
y. This enables the plugin for all client
The mysql, mysqladmin,
and mysqlslap client programs support an
--enable-cleartext-plugin option that
enables the plugin on a per-invocation basis.
mysql_options() C API
function supports a
MYSQL_ENABLE_CLEARTEXT_PLUGIN option that
enables the plugin on a per-connection basis. Also, any
program that uses
reads option files can enable the plugin by including an
enable-cleartext-plugin option in an
option group read by the client library.
A race condition could cause assertion errors during a
DROP TABLE statement for an
InnoDB table. Some internal
InnoDB functions did not correctly determine
if a tablespace was missing; other functions did not handle the
error code correctly if a tablespace was missing.
If a row was deleted from an
then another row was re-inserted with the same primary key
value, an attempt by a concurrent transaction to lock the row
could succeed when it should have waited. This issue occurred if
the locking select used a
WHERE clause that
performed an index scan using a secondary index.
(Bug #14100254, Bug #65389)
KILL statement to
terminate a query could cause an unnecessary message in the
[ERROR] Got error -1 when reading table
InnoDB table with a trigger, under the
sometimes auto-increment values could be interleaved when
inserting into the table from two sessions concurrently. The
sequence of auto-increment values could vary depending on
timing, leading to data inconsistency in systems using
(Bug #12752572, Bug #61579)
Partitioning: Insertion of an out-of-range value into a partitioned table was not handled correctly in all cases. This is a regression that first appeared in MySQL 5.5.23. (Bug #14005441, Bug #65587)
An event whose length exceeded the size of the master dump
caused replication to fail. This could occur when updating many
large rows and using row-based replication.
As part of this fix, a new server option
added, which permits max_allowed_packet to be exceeded by the
slave SQL and I/O threads. Now the size of a packet transmitted
from the master to the slave is checked only against this value
(available as the value of the
system variable), and not against the value of
(Bug #12400221, Bug #60926)
Statements such as
UPDATE ... WHERE
flagged as unsafe for statement-based logging, despite the fact
that such statements are actually safe. In cases where a great
many such statements were run, this could lead to disk space
becoming exhausted do to the number of such false warnings being
logged. To prevent this from happening, a warning suppression
mechanism is introduced. This warning suppression acts as
follows: Whenever the 50 most recent
constant LIMIT 1
warnings have been generated more than 50 times in any 50-second
period, warning suppression is enabled. When activated, this
causes such warnings not to be written to the error log;
instead, for each 50 warnings of this type, a note is written to
the error log stating
The last warning was repeated
. This continues
as long as the 50 most recent such warnings were issued in 50
seconds or less; once the number of warnings has decreased below
this threshold, the warnings are once again logged normally.
N times in last
The fix for this issue does not affect how these warnings are reported to MySQL clients; a warning is still sent to the client for each statement that generates the warning. This fix also does not make any changes in how the safety of any statement for statement-based logging is determined. (Bug #11759333, Bug #51638)
References: See also Bug #11751521, Bug #42415.
Replication: After upgrading a replication slave to MySQL 5.5.18 or later, enabling the query cache eventually caused the slave to fail. (Bug #64624, Bug #14005409)
The server did not build with gcc 4.7. (Bug #14238406)
Certain arguments to
lead to “uninitialized variable” warnings.
When the index enforcing a foreign key constraint was dropped
operations involving the foreign key column could cause a
serious error after the
foreign_key_checks option was
COUNT(DISTINCT(SELECT 1)) could be evaluated
incorrectly if the optimizer used Loose Index Scan.
References: See also Bug #13813126.
The presence of a file named
.empty in the
test database prevented that database from
For some subqueries that should be executed using a range scan on a nonprimary index and required use of filesort, only the first execution of the subquery was done as a range scan. All following executions were done as full table scans, resulting in poor performance. (Bug #12667154)
If an account had a nonzero
MAX_USER_CONNECTIONS value, that value was
not always respected.
(Bug #65104, Bug #14003080)
MySQL builds failed with CMake 2.8.8. (Bug #65050, Bug #14017376)
COUNT(DISTINCT(IF ...)) could be evaluated
incorrectly if the optimizer used Loose Index Scan.
(Bug #64445, Bug #13813126)
References: See also Bug #13444084.
File access by the
engine was not instrumented and thus not shown in Performance
(Bug #63340, Bug #13417440)
mysqlbinlog exited with no error code if file write errors occurred. (Bug #55289, Bug #11762667)
yaSSL rejected valid SSL certificates that OpenSSL accepts. (Bug #54348, Bug #11761822)
mysqldump could dump views and the tables on which they depend in such an order that errors occurred when the dump file was reloaded. (Bug #44939, Bug #11753490)