Important Change: The
YEAR(2)data type is now deprecated because it is problematic. Support for
YEAR(2)will be removed in a future MySQL release. For more information, see YEAR(2) Limitations and Migrating to YEAR(4).
mysql_clear_passwordcleartext 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 ways:
LIBMYSQL_ENABLE_CLEARTEXT_PLUGINenvironment variable to a value that begins with
y. This enables the plugin for all client connections.
The mysql, mysqladmin, and mysqlslap client programs support an
--enable-cleartext-pluginoption that enables the plugin on a per-invocation basis.
mysql_options()C API function supports a
MYSQL_ENABLE_CLEARTEXT_PLUGINoption that enables the plugin on a per-connection basis. Also, any program that uses
libmysqlclientand reads option files can enable the plugin by including an
enable-cleartext-pluginoption in an option group read by the client library.
InnoDB: A race condition could cause assertion errors during a
DROP TABLEstatement for an
InnoDBtable. Some internal
InnoDBfunctions did not correctly determine if a tablespace was missing; other functions did not handle the error code correctly if a tablespace was missing. (Bug #14251529)
InnoDB: If a row was deleted from an
InnoDBtable, 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
WHEREclause that performed an index scan using a secondary index. (Bug #14100254, Bug #65389)
InnoDB: Using the
KILLstatement to terminate a query could cause an unnecessary message in the error log:
[ERROR] Got error -1 when reading table
InnoDB: For an
InnoDBtable with a trigger, under the setting
innodb_autoinc_lock_mode=1, 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 replication. (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)
Replication: An event whose length exceeded the size of the master dump thread's
max_allowed_packetcaused 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
--slave-max-allowed-packetis 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
slave_max_allowed_packetserver system variable), and not against the value of
max_allowed_packet. (Bug #12400221, Bug #60926)
Replication: Statements such as
UPDATE ... WHEREare 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
ER_BINLOG_UNSAFE_STATEMENTwarnings 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.
Ntimes 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
RPAD()could lead to “uninitialized variable” warnings. (Bug #14039955)
When the index enforcing a foreign key constraint was dropped while
foreign_key_checks=0, further operations involving the foreign key column could cause a serious error after the
foreign_key_checksoption was re-enabled. (Bug #14025221)
COUNT(DISTINCT(SELECT 1))could be evaluated incorrectly if the optimizer used Loose Index Scan. (Bug #13444084)
References: See also: Bug #13813126.
The presence of a file named
testdatabase prevented that database from being dropped. (Bug #12845091)
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_CONNECTIONSvalue, 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
ARCHIVEstorage engine was not instrumented and thus not shown in Performance Schema tables. (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)