MySQL 5.0.16, a new GA/production version of the popular Open Source
Database Management System, has been released. The Community Edition is
now available in source and binary form for a number of platforms from
our download pages at
and mirror sites.
Note that not all mirror sites may be up to date at this point in time -
if you can't find this version on some mirror, please try again later or
choose another download site.
This is a bugfix release for the current production version.
If you are not aware of the changes introduced with version 5.0, please
see the high-level description at
and pay special attention to the manual, section 2.10.2,
"Upgrading from Version 4.1 to 5.0."
Please refer to our bug database at http://bugs.mysql.com/ for more
details about the individual bugs fixed in this version.
News from the ChangeLog:
Functionality added or changed:
* The InnoDB, NDB, BDB, and ARCHIVE storage engines now support
spatial columns. See Chapter 16, "Spatial Extensions in MySQL."
* 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 POINT. (Bug #12267 (http://bugs.mysql.com/12267))
* Added a --hexdump option to mysqlbinlog that displays a hex
dump of the log in comments. This output can be helpful for
* MySQL 5.0 now supports character set conversion for seven
additional cp950 characters into the big5 character set:
0xF9D6, 0xF9D7, 0xF9D8, 0xF9D9, 0xF9DA, 0xF9DB, and 0xF9DC.
Note: If you move data containing these additional characters
to an older MySQL installation which does not support them,
you may encounter errors.
(Bug #12476 (http://bugs.mysql.com/12476))
* The Solaris packages ("pkgadd" format) has changed. In earlier
releases, running "pkgadd" simply unpacked the distribution into
"/usr/local/mysql-<product>-<version>/", i.e. nothing more than
unpacking a TAR package would do. The new packages
- install into "/opt/mysql/mysql/" (vendor/product)
- register the package with the name "mysql"
- add and set group/user
- initiate/update the data directory "/var/lib/mysql",
run "mysql_install_db" to initialize system tables
- install a startup script as "/etc/init.d/mysql"
- add a soft link from "/usr/local/mysql" to "/opt/mysql/mysql"
(for compatibility and to enable the binaries to find
character set definitions etc)
- add soft links in "/usr/bin", "/usr/sbin", "/usr/lib"
and other locations to files in "/opt/mysql/mysql/"
- stop the server when the package is removed with "pkgrm"
Note that the server is *not* started as part of the package
install, and that the directory "/var/lib/mysql" is not altered
during package removal using "pkgrm".
* Please see the "additional notes" in the 5.0.15 announcement mail,
if you did not already do so earlier. The mail is archived here:
* ORDER BY DESC within the GROUP_CONCAT() function was not
honored when used in a view.
(Bug #14466 (http://bugs.mysql.com/14466))
* A comparison with an invalid date (such as WHERE col_name >
'2005-09-31') caused any index on col_name not to be used and
a string comparison for each row, resulting in slow performance.
(Bug #14093 (http://bugs.mysql.com/14093))
* Within stored routines, REPLACE() could return an empty
string (rather than the original string) when no replacement
was done, and IFNULL() could return garbage results.
(Bug #13941 (http://bugs.mysql.com/13941))
* Inserts of too-large DECIMAL values were handled inconsistently
(sometimes set to the maximum DECIMAL value, sometimes set to 0).
(Bug #13573 (http://bugs.mysql.com/13573))
* Executing REPAIR TABLE, ANALYZE TABLE, or OPTIMIZE TABLE on
a view for which an underlying table had been dropped caused
a server crash. (Bug #14540 (http://bugs.mysql.com/14540))
* A prepared statement that selected from a view processed
using the merge algorithm could crash on the second execution.
(Bug #14026 (http://bugs.mysql.com/14026))
* Deletes from a CSV table could cause table corruption.
(Bug #14672 (http://bugs.mysql.com/14672))
* An update of a CSV table could cause a server crash.
* 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 (http://bugs.mysql.com/13126))
* Starting mysqld with the --skip-innodb and
--default-storage-engine=innodb (or --default-table-type=innodb
caused a server crash.
(Bug #9815 (http://bugs.mysql.com/9815), re-fix of bug from 5.0.5)
* mysqlmanager did not start up correctly on Windows 2003.
(Bug #14537 (http://bugs.mysql.com/14537))
* The parser did not correctly recognize wildcards in the
host part of the DEFINER user in CREATE VIEW statements.
(Bug #14256 (http://bugs.mysql.com/14256))
* Memory corruption and a server crash could be caused by
statements that used a cursor and generated a result set
larger than max_heap_table_size.
(Bug #14210 (http://bugs.mysql.com/14210))
* mysqld_safe did not correctly start the -max version of the
server (if it was present) if the --ledir option was given.
(Bug #13774 (http://bugs.mysql.com/13774))
* 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 in an Unknown database:
abc; error. (Bug #14358 (http://bugs.mysql.com/14358))
* Statements of the form CREATE TABLE ... SELECT ... that
created a column with a multi-byte character set could
incorrectly calculate the maximum length of the column,
resulting in a Specified key was too long error.
(Bug #14139 (http://bugs.mysql.com/14139))
* Some updatable views could not be updated.
(Bug #14027 (http://bugs.mysql.com/14027))
* Running OPTIMIZE TABLE and other data-updating statements
concurrently on an InnoDB table could cause a crash or the
following warnings in the error log:
Warning: Found locks from different threads in write:
Warning: Found locks from different threads in write:
start of release lock.
(Bug #11704 (http://bugs.mysql.com/11704))
* Indexes for BDB tables were being limited incorrectly to
255 bytes. (Bug #14381 (http://bugs.mysql.com/14381))
* Use of col_name = VALUES(col_name) in the ON DUPLICATE KEY
UPDATE clause of an INSERT statement failed with an Column
'col_name' in field list is ambiguous error.
(Bug #13392 (http://bugs.mysql.com/13392))
* 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 (http://bugs.mysql.com/4375))
* mysqldump could not dump views if the -x option was given.
(Bug #12838 (http://bugs.mysql.com/12838))
* mysqlimport now issues a SET @@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. (Bug #12123 (http://bugs.mysql.com/12123))
* Use of the deprecated --sql-bin-update-same option caused
a server crash. (Bug #12974 (http://bugs.mysql.com/12974))
* Maximum values were handled incorrectly for command-line
options of type GET_LL. (Bug #12925 (http://bugs.mysql.com/12925))
* For a user that has the SELECT privilege on a view, the
server erroneously was also requiring the user to have the
EXECUTE privilege at view execution time for stored functions
used in the view definition. (Bug #9505 (http://bugs.mysql.com/9505))
* Use of WITH ROLLUP PROCEDURE ANALYSE() could hang the server.
(Bug #14138 (http://bugs.mysql.com/14138))
* TIMEDIFF(), ADDTIME(), and STR_TO_DATE() were not reporting
that they could return NULL, so functions that invoked them
might misinterpret their results.
(Bug #14009 (http://bugs.mysql.com/14009))
* The example configuration files supplied with MySQL
distributions listed the thread_cache_size variable as
thread_cache. (Bug #13811 (http://bugs.mysql.com/13811))
* Using 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 SHOW WARNINGS.
(Bug #12166 (http://bugs.mysql.com/12166))
* The input polling loop for Instance Manager did not sleep
properly. Instance Manager used up too much CPU as a result.
(Bug #14388 (http://bugs.mysql.com/14388))
* 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 warning when ERROR_FOR_DIVISION_BY_ZERO is set,
and an error in strict mode.
(Bug #13820 (http://bugs.mysql.com/13820))
* LOAD DATA INFILE would not accept the same character for
both the ESCAPED BY and the ENCLOSED BY clauses.
(Bug #11203 (http://bugs.mysql.com/11203))
* The value of Last_query_cost was not updated for queries
served from the query cache.
(Bug #10303 (http://bugs.mysql.com/10303))
* TIMESTAMPDIFF() returned an incorrect result if one argument
but not the other was a leap year and a date was from March
or later. (Bug #13534 (http://bugs.mysql.com/13534))
* The server incorrectly accepted column definitions of the
form DECIMAL(0,D) for D less than 11.
(Bug #13667 (http://bugs.mysql.com/13667))
* The displayed value for the CHARACTER_MAXIMUM_LENGTH column
in the INFORMATION_SCHEMA.COLUMNS table was not adjusted for
multi-byte character sets. (Bug #14290 (http://bugs.mysql.com/14290))
* A bugfix in MySQL 5.0.15 caused the displayed values for
the CHARACTER_MAXIMUM_LENGTH and CHARACTER_OCTET_LENGTH
columns in the INFORMATION_SCHEMA.COLUMNS table to be reversed.
(Bug #14207 (http://bugs.mysql.com/14207))
* On Windows, the value of character_sets_dir in SHOW VARIABLES
output was displayed inconsistenly (using both `/' and `\' as
pathname component separators).
(Bug #14137 (http://bugs.mysql.com/14137))
* Subqueries in the FROM clause failed if the current database
was INFORMATION_SCHEMA. (Bug #14089 (http://bugs.mysql.com/14089))
* Corrected a parser precedence problem that resulted in an
Unknown column ... in 'on clause' error for some joins.
(Bug #13832 (http://bugs.mysql.com/13832))
* For 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.
(Bug #12595 (http://bugs.mysql.com/12595))
* SELECT DISTINCT CHAR(col_name) returned incorrect results
after SET NAMES utf8. (Bug #13233 (http://bugs.mysql.com/13233))
* 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 latin1.
(Bug #12371 (http://bugs.mysql.com/12371))
* Inserting a new row into an InnoDB table could cause DATETIME
values already stored in the table to change.
(Bug #13900 (http://bugs.mysql.com/13900))
* The default value of query_prealloc_size was set to 8192,
lower than its minimum of 16384. The minimum has been lowered
to 8192. (Bug #13334 (http://bugs.mysql.com/13334))
* The server did not take character set into account in
checking the width of the mysql.user.Password column. As a
result, it could incorrectly generate long password hashes
even if the column was not long enough to hold them.
(Bug #13064 (http://bugs.mysql.com/13064))
* Inserting cp932 strings into a VARCHAR column caused a
server crash rather than string truncation if the string was
longer than the column definition.
(Bug #12547 (http://bugs.mysql.com/12547))
* Two threads that were creating triggers on an InnoDB table
at the same time could deadlock.
(Bug #12739 (http://bugs.mysql.com/12739))
* mysqladmin and mysqldump would hang on SCO OpenServer.
(Bug #13238 (http://bugs.mysql.com/13238))
* RESET MASTER failed to delete log files on Windows.
(Bug #13377 (http://bugs.mysql.com/13377))
* 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 regardless when A was called by another stored
procedure B, even if an exception that should have been
handled by the EXIT was generated in A.
(Bug #7049 (http://bugs.mysql.com/7049))
* Trying to create a stored routine with no database selected
would crash the server.
(Bug #13514 (http://bugs.mysql.com/13514),
Bug #13587 (http://bugs.mysql.com/13587))
* Specifying --default-character-set=cp-932 for mysqld would
cause SQL scripts containing comments written using that
character set to fail with a syntax error.
(Bug #13487 (http://bugs.mysql.com/13487))
* Trying to compile the server using the --without-geometry
option caused the build to fail.
(Bug #12991 (http://bugs.mysql.com/12991))
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=myo...@freebsd.csie.nctu.edu.tw