Functionality Added or Changed
--hexdump option to
mysqlbinlog that displays a hex dump of the
log in comments. This output can be helpful for replication
When a date column is set
NOT NULL and
0000-00-00, it will be updated for
UPDATE statements that contains
columnname IS NULL
When trying to run the server with yaSSL enabled, MySQL now
tries to open
/dev/random automatically if
/dev/urandom is not available.
MySQL now supports character set conversion for seven additional
cp950 characters into the
big5 character set:
If you move data containing these additional characters to an older MySQL installation which does not support them, you may encounter errors.
You must now declare a prefix for an index on any column of any
Geometry class, the only exception being when
the column is a
read_only system variable
no longer applies to
CHECK TABLE statement now
In MySQL 5.0.13, syntax for
SQL SECURITY clauses was added to the
CREATE VIEW and
ALTER VIEW statements, but the
clauses had no effect. They now are enabled. They specify the
security context to be used when checking access privileges at
view invocation time. See CREATE VIEW Syntax, for
variable, which indicates whether the client connection uses
compression in the client/server protocol.
Due to changes in binary logging, the restrictions on which
stored routine creators can be trusted not to create unsafe
routines have been lifted for stored procedures (but not stored
functions). Consequently, the
variable and the corresponding
--log-bin-trust-routine-creators server option
were renamed to
backward compatibility, the old names are recognized but result
in a warning. See Binary Logging of Stored Programs.
Repeated transactions using unique index lookups could cause a
memory leak leading to error 288,
Out of index
operations in transaction coordinator.
MySQL Cluster: A memory leak occurred when performing ordered index scans using indexes on columns larger than 32 bytes. This would eventually lead to the forced shutdown of all mysqld server processes used with the cluster. (Bug #13078)
For some stored functions dumped by mysqldump --routines, the function definition could not be reloaded later due to a parsing error. (Bug #14723)
Deletes from a
CSV table could cause table
mysqlmanager did not start up correctly on Windows 2003. (Bug #14537)
Selecting from a table in both an outer query and a subquery could cause a server crash. (Bug #14482)
ORDER BY DESC within the
GROUP_CONCAT() function was not
honored when used in a view.
The input polling loop for Instance Manager did not sleep properly. Instance Manager used up too much CPU as a result. (Bug #14388)
BDB tables were being limited
incorrectly to 255 bytes.
The mysql parser did not properly strip the
delimiter from input lines less than nine characters long. For
example, this could cause
USE abc; to result
Unknown database: abc; error.
The displayed value for the
CHARACTER_MAXIMUM_LENGTH column in the
was not adjusted for multibyte character sets.
The parser did not correctly recognize wildcards in the host
part of the
DEFINER user in
CREATE VIEW statements.
Memory corruption and a server crash could be caused by
statements that used a cursor and generated a result set larger
A bug fix in MySQL 5.0.15 caused the displayed values for the
CHARACTER_OCTET_LENGTH columns in the
INFORMATION_SCHEMA.COLUMNS table to
Statements of the form
CREATE TABLE ...
SELECT ... that created a column with a multibyte
character set could incorrectly calculate the maximum length of
the column, resulting in a
Specified key was too
WITH ROLLUP PROCEDURE ANALYSE() could
hang the server.
A comparison with an invalid date (such as
caused any index on
col_name > '2005-09-31'
col_name not to
be used and a string comparison for each row, resulting in slow
Subqueries in the
FROM clause failed if the
current database was
InnoDB tables, using a column prefix for
utf8 column in a primary key caused
Cannot find record errors when attempting to
Some updatable views could not be updated. (Bug #14027)
A prepared statement that selected from a view processed using the merge algorithm could crash on the second execution. (Bug #14026)
appeared in both the
ORDER BY clauses of a query but with
arguments that differ by case (for example,
sorting may have occurred.
Inserting a new row into an
already stored in the table to change.
An update of a
CSV table could cause a server
Corrected a parser precedence problem that resulted in an
Unknown column ... in 'on clause' error for
Trying to take the logarithm of a negative value is now handled
in the same fashion as division by zero. That is, it produces a
set, and an error in strict mode.
The example configuration files supplied with MySQL
distributions listed the
thread_cache_size variable as
mysqld_safe did not correctly start the
-max version of the server (if it was
present) if the
--ledir option was given.
SHOW CREATE TABLE did not display
CONNECTION string for
MyISAM table originally created in
INSERT DELAYED could
cause a server crash.
The server incorrectly accepted column definitions of the form
D less than 11.
Trying to create a stored routine with no database selected would crash the server. (Bug #13587, Bug #13514)
TIMESTAMPDIFF() returned an
incorrect result if one argument but not the other was a leap
year and a date was from March or later.
mysqld would cause SQL scripts containing
comments written using that character set to fail with a syntax
ON DUPLICATE KEY UPDATE clause of an
INSERT statement failed with an
Column ' error.
col_name' in field
list is ambiguous
The default value of
query_prealloc_size was set to
8192, lower than its minimum of 16384. The minimum has been
lowered to 8192.
InnoDB: When dropping and adding a
PRIMARY KEY, if a loose index scan using only
the second part of multiple-part index was chosen, incorrect
keys were created and an endless loop resulted.
mysqladmin and mysqldump would hang on SCO OpenServer. (Bug #13238)
incorrect results after
SET NAMES utf8.
For queries with nested outer joins, the optimizer could choose join orders that query execution could not handle. The fix is that now the optimizer avoids choosing such join orders. (Bug #13126)
The server did not take character set into account in checking
the width of the
As a result, it could incorrectly generate long password hashes
even if the column was not long enough to hold them.
The source distribution failed to compile when configured with
Use of the deprecated
option caused a server crash.
Maximum values were handled incorrectly for command-line options
mysqldump could not dump views if the
-x option was given.
Two threads that were creating triggers on an
InnoDB table at the same time could deadlock.
innobase_log_file_size values were displayed
incorrectly on 64-bit systems.
LIKE ... ESCAPE, an escape sequence
longer than one character was accepted as valid. Now the
sequence must be empty or one character long. If the
NO_BACKSLASH_ESCAPES SQL mode
is enabled, the sequence must be one character long.
cp932 strings into a
VARCHAR column caused a server
crash rather than string truncation if the string was longer
than the column definition.
A prepared statement failed with
Illegal mix of
collations if the client character set was
utf8 and the statement used a table that had
a character set of
ALTER TABLE to add an index
could fail if the operation ran out of temporary file space. Now
it automatically makes a second attempt that uses a slower
method but no temporary file. In this case, problems that
occurred during the first attempt can be displayed with
mysqlimport now issues a
@@character_set_database = binary statement before
loading data so that a file containing mixed character sets
(columns with different character sets) can be loaded properly.
OPTIMIZE TABLE and other
data-updating statements concurrently on an
InnoDB table could cause a crash or the
following warnings in the error log:
locks from different threads in write: enter
Warning: Found locks from
different threads in write: start of release lock.
INFILE would not accept the same character for both
ESCAPED BY and the
The value of
was not updated for queries served from the query cache.
For a user that has the
privilege on a view, the server erroneously was also requiring
the user to have the
privilege at view execution time for stored functions used in
the view definition.
Where one stored procedure called another stored procedure: If
the second stored procedure generated an exception, the
exception was not caught by the calling stored procedure. For
example, if stored procedure
A used an
EXIT statement to handle an exception,
subsequent statements in
A would be executed
A was called by another
B, even if an exception that
should have been handled by the
On Windows, the server was not ignoring hidden or system directories that Windows may have created in the data directory, and would treat them as available databases. (Bug #4375)