Functionality Added or Changed
Better detection of connection timeout for replication servers
on Windows enables elimination of extraneous
connection errors in the error log.
A new command line argument was added to mysqld to ignore client character set information sent during handshake, and use server side settings instead, to reproduce 4.0 behavior :
TABLE statement for
always resets the counter for an
AUTO_INCREMENT column now, regardless of
whether there is a foreign key constraint on the table.
(Beginning with 5.0.3,
TABLE reset the counter, but only if there was no such
--routines option for
mysqldump that enables dumping of stored
Reorder network startup to come after all other initialization, particularly storage engine startup which can take a long time. This also prevents MySQL from being run on a privileged port (any port under 1024) unless run as the root user. (Bug #11707)
The binaries compiled with the Intel icc compiler are now built using icc 9.0 instead of icc 8.1. You will have to install new versions of the Intel icc runtime libraries, which are available from here: http://dev.mysql.com/downloads/os-linux.html
The connection string for
now is specified using a
option rather than a
COMMENT table option.
The Windows binary packages are now compiled with the Microsoft Visual Studio 2003 compiler instead of Microsoft Visual C++ 6.0.
RAND() no longer permits
nonconstant initializers. (Previously, the effect of nonconstant
initializers is undefined.)
References: See also Bug #7115.
Two new collations have been added for Esperanto:
--hex-dump option for
mysqldump now also applies to
The syntax for
CREATE VIEW and
ALTER VIEW statements now
SECURITY clauses for specifying the security context
to be used when checking access privileges at view invocation
time. (The syntax is present in 5.0.13, but these clauses have
no effect until 5.0.16.) See CREATE VIEW Syntax, for
A lock wait timeout caused
InnoDB to roll
back the entire current transaction. Now it rolls back only the
most recent SQL statement.
The cluster management client
command could be interrupted by a
MySQL Cluster: A cluster shutdown following the crash of a data node failed to terminate any remaining node processes, even though ndb_mgm showed the shutdown request as having been completed. (Bug #9996, Bug #10938, Bug #11623)
The average row size for Cluster tables was calculated
incorrectly. This affected the values shown for the
Avg_row_length columns in the output
SHOW TABLE STATUS as
well as the values for the
data_length/table_rows columns shown in the
TABLES table of the
INFORMATION_SCHEMA database with respect to
Tables using storage engines other than
NDB were not affected by this bug.
Within a transaction, the following statements now cause an
DROP PROCEDURE (for stored
functions, not UDFs),
PROCEDURE. This corrects a problem where these
statements followed by
not be replicated properly.
DATA INFILE failed between systems using different
path name syntax (such as delimiter characters).
InnoDB: A consistent read could return
inconsistent results due to a bug introduced in MySQL 5.0.5.
within a loop in a stored routine could incorrectly result in a
The counters for the
Key_writes status variables
were changed from
unsigned long to
unsigned longlong to accommodate larger
values before the variables roll over and restart from 0.
UNION [DISTINCT] was not removing all
duplicates for multibyte character values.
When using a cursor, a
statement that uses a
GROUP BY clause could
return incorrect results.
A client connection thread cleanup problem caused the server to crash when closing the connection if the binary log was enabled. (Bug #12517)
mysql.server script contained an
incorrect path for the
A bug introduced in MySQL 5.0.12 caused
SHOW TABLE STATUS to display an
Auto_increment value of 0 for
SHOW FIELDS truncated the
TYPE column to 40 characters.
References: See also Bug #12817.
If a client has opened an
InnoDB table for
.ibd file is missing,
InnoDB would not honor a
DROP TABLE statement for the
SYSDATE() function now
returns the time at which it was invoked. In particular, within
a stored routine or trigger,
SYSDATE() returns the time at
which it executes, not the time at which the stored routine or
triggering statement began to execute.
On Windows, the server was preventing tables from being created
if the table name was a prefix of a forbidden name. For example,
nul is a forbidden name because it is the
same as a Windows device name, but a table with the name of
nu was being
forbidden as well.
Incorrect implicit nesting of joins caused the parser to fail on
queries of the form
SELECT ... FROM t1 JOIN t2 JOIN t3
ON t1.t1col = t3.t3col with an
't1.t1col' in 'on clause' error.
GROUP BY when selecting from a view in
some cases could cause incorrect results to be returned.
If the binary log is enabled, execution of a stored procedure that modifies table data and uses user variables could cause a server crash or incorrect information to be written to the binary log. (Bug #12637)
If a stored function invoked from a
SELECT failed with an error, it
could cause the client connection to be dropped. Now such errors
generate warnings instead so as not to interrupt the
A concurrency problem for
CREATE ... SELECT
could cause a server crash.
InnoDB was too permissive with
TABLE ... READ LOCAL and permitted new inserts into
the table. Now
READ LOCAL is equivalent to
InnoDB. This will
cause slightly more locking in mysqldump, but
InnoDB table dumps consistent with
MyISAM table dumps.
The server failed to disallow
in stored functions and triggers. It is permitted to change the
autocommit in stored
procedures, but a runtime error might occur if the procedure is
invoked from a stored function or trigger.
variable could not be selected with
SHOW FIELDS FROM
caused error 1046 when no default schema was set.
After changing the character set with
SET, the result of the
GROUP_CONCAT() function was not
converted to the proper character set.
Columns named in the
USING() clause of
JOIN ... USING() were incorrectly resolved in
Use of yaSSL for a secure client connection caused
LOAD DATA LOCAL
INFILE to fail.
The Windows installer made a change to one of the
mysql.proc table files, causing stored
routine functionality to be compromised. The Windows installer
now never overwrites files in the MySQL data directory. During
an upgrade from one version to another, a file in the data
directory will not be overwritten even if it has not been
modified since it was put there by an older installer.
If you have already lost access to stored routines because of this problem, you can get them back using the following procedure:
Stop the server.
mysql\data directory under your
MySQL installation directory, and replace the
proc.frm file with corresponding file
from the version of MySQL that you were using before you
Start the server.
Start the mysql command-line client (use
root account or another account that
has full database privileges) and execute the
that upgrades the grant tables to the current structure.
Instructions for doing this are given in
mysql_fix_privilege_tables — Upgrade MySQL System Tables.
After this, all stored routine functionality should work. (Bug #12820)
Within a stored procedure, fetching a large number of rows in a
loop using a cursor could result in a server crash or an out of
memory error. Also, values inserted within a stored procedure
using a cursor were interpreted as
even if character set variables had been set to a different
(Bug #9819, Bug #6513)
A view-creation statement of the form
failed with a
name AS SELECT ... FROM
Not unique table/alias:
The server incorrectly generated an
table error message when for attempts to drop tables
INFORMATION_SCHEMA database. Now it
Access denied message.
mysql and mysqldump were
INOUT parameter with a
DECIMAL data type in a stored
procedure caused a server crash.
GROUP_CONCAT() ignored an empty
string if it was the first value to occur in the result.
InnoDB: Limit recursion depth to 200 in
deadlock detection to avoid running out of stack space.
A memory leak resulting from repeated
INTO statements inside a stored procedure could cause
the server to crash.
For a server compiled with yaSSL, clients that used MySQL Connector/J were not able to establish SSH connections. (Bug #13029)
Incorrect results could be returned from a view processed using a temporary table. (Bug #12941)
DO IFNULL(NULL, NULL) and
CAST(IFNULL(NULL, NULL) AS DECIMAL) caused a server
The server permitted
TEMPORARY tables and
stored procedures to be created in the
(Bug #9683, Bug #10708)
Within a stored procedure, a server crash was caused by
assigning to a
VARCHAR INOUT parameter the
value of an expression that included the variable itself. (For
SET c = c.)
The value of
character_set_results could be
NULL, but returned the string
"NULL" when retrieved.
AS to rename a column selected from a
view in a subquery made it not possible to refer to that column
in the outer query.
FEDERATED storage engine does not support
ALTER TABLE, but no appropriate
error message was issued.
UNION of long
columns was sometimes returned as a column with a
type rather than
could prevent such queries from working at all if selected into
MEMORY table because the
MEMORY storage engine does not support the
TEXT data types.
A column that can be
NULL was not handled
WITH ROLLUP in a subquery or
The server permitted privileges to be granted explicitly for the
INFORMATION_SCHEMA database. Such privileges
are always implicit and should not be grantable.
On HP-UX 11.x (PA-RISC), the
-L option caused
mysqlimport to crash.
The server crashed when one thread resized the query cache while another thread was using it. (Bug #12848)
mysqld_multi now quotes arguments on command lines that it constructs to avoid problems with arguments that contain shell metacharacters. (Bug #11280)
myisampack did not properly pack
BLOB values larger than
mysqldump did not dump triggers properly. (Bug #12597)
SELECT ... JOIN ... ON ... JOIN ... USING
caused a server crash.
LIKE ... ESCAPE syntax produced invalid
results when escape character was larger than one byte.
CREATE VIEW inside a stored
procedure caused a server crash if the table underlying the view
had been deleted.
ALTER TABLE ... DISCARD TABLESPACE for
InnoDB table caused the client to lose
the connection. (The server was not returning the error
Use of the mysql client
HELP command from within a stored
routine caused a “packets out of order” error and a
lost connection. Now
detected and not permitted within stored routines.
Local variables in stored routines were not always initialized correctly. (Bug #13133)
Foreign keys were not properly enforced in
TEMPORARY tables. Foreign keys are no longer