Functionality Added or Changed
CHAR() function now returns a
binary string rather than a string in the connection character
set. An optional
clause may be used
to produce a result in a specific character set instead. Also,
arguments larger than 256 produce multiple characters. They are
no longer interpreted modulo 256 to produce a single character
each. These changes may cause some incompatibilities, as noted
in Upgrading from MySQL 4.1 to 5.0.
BINARY columns, the pad value
and how it is handled has changed. The pad value for inserts now
0x00 rather than space, and there is no
stripping of the pad value for selects. For details, see
The BINARY and VARBINARY Types.
MySQL Cluster: The ndb_mgm client now reports node startup phases automatically. (Bug #16197)
A new “smart” node allocation algorithm means that
it is no longer necessary to use sequential IDs for cluster
nodes, and that nodes not explicitly assigned IDs should now
have IDs allocated automatically in most cases. In practical
terms, this means that it is now possible to assign a set of
node IDs such as
5 without an error
being generated due to the missing
MySQL Cluster: A number of new or improved error messages have been implemented in this release to provide better and more accurate diagnostic information regarding cluster configuration issues and problems. (Bug #12786, Bug #11749, Bug #13197, Bug #11739, Bug #12044)
The following statements now cause an implicit
When declaring a local variable (or parameter) named
setting it with
SET password = ''), the new
ERROR 42000: Variable 'nnn' must be
quoted with `...`, or renamed is returned (where 'nnn'
is 'password' or 'names'). This means there is a syntax conflict
with special sentences like
SET PASSWORD =
PASSWORD(...) (for setting a user's password) and
set names default (for setting charset and
This must be resolved either by quoting the variable name:
SET `password` = ..., which will set the
`password`, or by renaming the
variable to something else (if setting the user's password is
the desired effect).
MySQL-server RPM now explicitly assigns
mysql system user to the
mysql user group during the postinstallation
process. This corrects an issue with upgrading the server on
some Linux distributions whereby a previously existing
mysql user was not changed to the
mysql group, resulting in wrong groups for
files created following the installation.
--tz-utc option to
mysqldump. This option adds
TIME_ZONE='+00:00' to the dump file so that
TIMESTAMP columns can be dumped
and reloaded between servers in different time zones and
protected from changes due to daylight saving time.
The maximum key length for
InnoDB indexes was
increased from 1024 bytes to 3072 bytes for 64-bit builds.
When executing single-table
DELETE queries containing an
ORDER BY ... LIMIT
clause, but not having
WHERE clause, MySQL can now take
advantage of an index to read the first
N rows in the ordering specified in
the query. If an index is used, only the first
N records will be read, as opposed to
scanning the entire table.
Trying to run ndbd as system
root when connecting to a
mysqld process running as the
mysql system user using SHM caused the
ndbd process to crash.
(ndbd should now exit gracefully with an
appropriate error message instead.)
[tcp default] sections in
config.ini file crashed
ndb_mgmd. (The process now exits gracefully
in such cases, with an appropriate error message.)
The perror utility included with the
MySQL-Server RPM did not provide support for
--ndb option. It now supports
this option, and so can be used to obtain error message text for
MySQL Cluster error codes.
MySQL Cluster: ndb_mgmd permitted a node to be stopped or restarted while another node was still starting up, which could crash the cluster. It should now not be possible to issue a node stop or restart while a different node is still restarting, and the cluster management client should issue an error when such an attempt is made. (Bug #13461)
UPDATE query using a join
would be executed incorrectly on a replication slave.
Queries of the form
(SELECT ...) ORDER BY ...
were being treated as a
This improperly resulted in only distinct values being returned
UNION by default
eliminates duplicate results). Also, references to column
ORDER BY clauses following
were not resolved properly.
mysqldump --triggers did not quote
identifiers properly if the
--compatible option was given,
so the dump output could not be reloaded.
An expression in an
ORDER BY clause failed
' if the expression referred to a column alias.
col_name' in 'order
A qualified reference to a view column in the
HAVING clause could not be resolved.
Exec_master_log_pos of SQL thread lagged IO
If special characters such as
'%', or the escape character were included
within the prefix of a column index,
pattern matching on the indexed column did not return the
(Bug #13046, Bug #13919)
InnoDB: Queries that were executed using an
index_merge union or
intersection could produce incorrect results if the underlying
table used the
InnoDB storage engine and had
a primary key containing
The server could over-allocate memory when performing a
FULLTEXT search for stopwords only.
Trying to create a view dynamically using a prepared statement within a stored procedure failed with error 1295. (Bug #13095)
CREATE DEFINER=... VIEW ... caused the server
to crash when run with
When calling a stored procedure with the syntax
and no default schema selected,
1046 was displayed after the procedure returned.
Corrected a memory-copying problem for
values when using icc compiler on Linux IA-64
Character set conversion was not being done for
comp_err did not detect when multiple error messages for a language were given for an error symbol. (Bug #13071)
For XA transaction IDs (
bqual. MySQL was also including
formatID in the uniqueness check.
SELECT * INTO OUTFILE ... FROM
INFORMATION_SCHEMA.schemata failed with an
Access denied error.
A table or view named Ç (C-cedilla) couldn't be dropped. (Bug #13145)
CAST(1E+300 TO SIGNED INT)
produced an incorrect result on little-endian machines.
--slave-net-timeout options for
mysqld were not being obeyed on Mac OS X and
other BSD-based platforms.
mysqldump could not dump views. (Bug #14061)
(Bug #14064, Bug #14065)
A column in the
ON condition of a join that
referenced a table in a nested join could not be resolved if the
nested join was a right join.
Character set file parsing during
mysql_real_connect() read past
the end of a memory buffer.
On BSD systems, the system
crypt() call could
return an error for some salt values. The error was not handled,
resulting in a server crash.
Server crashed during a
statement, writing a message like this to the error log:
InnoDB: Error: MySQL is trying to perform a SELECT
InnoDB: but it has not locked any tables in ::external_lock()!
Queries that use indexes in normal
SELECT statements may cause range
Local (non-XA) and XA transactions are supposed to be mutually exclusive within a given client connection, but this prohibition was not always enforced. (Bug #12935)