C API Notes
Incompatible Change: The shared library version of the client library was increased to 18 to reflect ABI changes, and avoid compatibility problems with the client library in MySQL 5.1. Note that this is an incompatible change between 5.5.10 and earlier 5.5 versions, so client programs that use the 5.5 client library should be recompiled against the 5.5.10 client library. (Bug #60061, Bug #11827366)
MySQL distributions now include
a server-side authentication plugin that authenticates clients
that connect from the local host through the Unix socket file.
The plugin uses the
SO_PEERCRED socket option
to obtain information about the user running the client program
(and thus can be built only on systems that support this
option). For a connection to succeed, the plugin requires a
match between the login name of the connecting client user and
the MySQL user name presented by the client program. For more
information, see The Socket Peer-Credential Authentication Plugin.
(Bug #59017, Bug #11765993, Bug #9411, Bug #11745104)
MySQL distributions now include
mysql_clear_password, a client-side
authentication plugin that sends the password to the server
without hashing or encryption. Although this is insecure, and
thus appropriate precautions should be taken (such as using an
SSL connection), the plugin is useful in conjunction with
server-side plugins that must have access to the original
password in clear text. For more information, see
The Cleartext Client-Side Authentication Plugin.
Functionality Added or Changed
and mysqlslap clients now have
--plugin-dir options for specifying which
authentication plugin and plugin directory to use.
Boolean system variables can be enabled at run time by setting
them to the value
OFF, but previously this did not work at
server startup. Now at startup such variables can be enabled by
setting them to
TRUE, or disabled by setting them to
FALSE. Any other
nonnumeric value is invalid.
References: See also Bug #11754743, Bug #51631.
Previously, for queries that were aborted due to a sort problem,
the server wrote the message
Sort aborted to
the error log. Now the server writes more information to provide
a more specific message, such as:
Sort aborted: Out of memory (Needed 24 bytes) Out of sort memory, consider increasing server sort buffer size Sort aborted: Out of sort memory, consider increasing server sort buffer size Sort aborted: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1
In addition, if the server was started with
--log-warnings=2, the server
writes information about the host, user, and query.
(Bug #36022, Bug #11748358)
mysqldump --xml now displays comments from column definitions. (Bug #13618, Bug #11745324)
Security Fix: A security bug was fixed. (Bug #36544)
Important Change; InnoDB:
libaio library, which has been used on
Linux systems since MySQL 5.5.4, is now linked into
mysqld dynamically rather than statically. If
the library is not already on your Linux system, install it
using the appropriate package manager for your distribution. The
libaio-dev library is not sufficient; you
must have the
(Bug #11893055, Bug #60544)
InnoDB: Raised the number of I/O requests that each AIO helper thread could process, from 32 to 256. The new limit applies to Linux and Unix platforms; the limit on Windows remains 32. (Bug #59472)
InnoDB returned values for
“rows examined” in the query plan that were higher
NULL values were treated in an
inconsistent way. The inaccurate statistics could trigger
“false positives” in combination with the
max_join_size setting, because
the queries did not really examine as many rows as reported.
A new configuration option
innodb_stats_method lets you specify how
NULL values are treated when calculating
index statistics. Allowed values are
nulls_equal (the default),
null_ignored. The meanings of these values
are similar to those of the
When using the statement-based logging format,
DUPLICATE KEY UPDATE and
statements affecting transactional tables that did not fail were
not written to the binary log if they did not insert any rows.
(With statement-based logging, all successful statements should
be logged, whether they do or do not cause any rows to be
(Bug #59338, Bug #11766266)
STOP SLAVE stopped the
slave I/O thread first and then stopped the slave SQL thread;
thus, it was possible for the I/O thread to stop after
replicating only part of a transaction which the SQL thread was
executing, in which case—if the transaction could not be
rolled back safely—the SQL thread could hang.
STOP SLAVE stops the slave
SQL thread first and then stops the I/O thread; this guarantees
that the I/O thread can fetch any remaining events in the
transaction that the SQL thread is executing, so that the SQL
thread can finish the transaction if it cannot be rolled back
(Bug #58546, Bug #11765563)
OUTER JOIN query using
return an incorrect result.
(Bug #58490, Bug #11765513)
col_name IS NULL
UpdateXML(), if the XML to be
read contained an incomplete XML comment, MySQL read beyond the
end of the XML string when processing, leading to a crash of the
(Bug #44332, Bug #11752979)
The fix for Bug #25192 caused
to add an argument separator to distinguish options loaded from
option files from those provided on the command line, whether or
not the application needed it.
(Bug #57953, Bug #11765041)
References: See also Bug #11746296.
In debug builds,
FORMAT(...)) could cause a server crash.
(Bug #58371, Bug #11765406)
Outer joins on a unique key could return incorrect results. (Bug #57034, Bug #11764219)
ESCAPE clause for the
LIKE operator permits only
expressions that evaluate to a constant at execution time, but
aggregate functions were not being rejected.
(Bug #59149, Bug #11766110)
Outer joins with an empty table could produce incorrect results. (Bug #58422, Bug #11765451)
The server and client did not always properly negotiate authentication plugin names. (Bug #59453, Bug #11766356)
The mysql client went into an infinite loop if the standard input was a directory. (Bug #57450, Bug #11764598)
incorrectly and produced incorrect results.
(Bug #57030, Bug #11764215)
A query of the following form returned an incorrect result,
where the values for
col_name in the
result set were entirely replaced with
col_name... ORDER BY
(Bug #59308, Bug #11766241)
ORDER BY AVG(DISTINCT
server crash or incorrect results.
(Bug #52123, Bug #11759784)
SHOW PROFILE could truncate
source file names or fail to show function names.
(Bug #59273, Bug #11766214)
Memory leaks detected by Valgrind, some of which could cause incorrect query results, were corrected. (Bug #59110, Bug #11766075)
Some string-manipulating SQL functions use a shared string
object intended to contain an immutable empty string. This
object was used by the SQL function
SUBSTRING_INDEX() to return an
empty string when one argument was of the wrong data type. If
the string object was then modified by the SQL function
INSERT(), undefined behavior
(Bug #58165, Bug #11765225)
Some RPM installation scripts used a hardcoded value for the data directory, which could result in a failed installation for users who have a nonstandard data directory location. The same was true for other configuration values such as the PID file name. (Bug #56581, Bug #11763817)
On FreeBSD and OpenBSD, the server incorrectly checked the range of the system date, causing legal values to be rejected. (Bug #55755, Bug #11763089)
Parsing nested regular expressions could lead to recursion resulting in a stack overflow crash. (Bug #58026, Bug #11765099)
Starting the server with the
option, where the file name had no extension, caused a server
(Bug #58455, Bug #11765482)
There was an erroneous restriction on file attributes for
(Bug #59085, Bug #11766052)
system variable to an invalid value caused a server crash.
(Bug #59894, Bug #11766719)
DATE_SUB() return a string if the
first argument is a string, but incorrectly returned a binary
string. Now they return a character string with a collation of
(Bug #31384, Bug #11747221)