Previously, MySQL development proceeded by including a large set of features and moving them over many versions within a release series through several stages of maturity (Alpha, Beta, and so forth). This development model had a disadvantage in that problems with only part of the code could hinder timely release of the whole. As you might have found when testing MySQL Server 6.0, alpha quality code could jeopardize the stability of the entire release. (One consequence of this was that MySQL Server 6.0 has been withdrawn for now.)
MySQL development now uses a milestone model. The move to this model provides for more frequent milestone releases, with each milestone proceeding through a small number of releases having a focus on a specific subset of thoroughly tested features. Following the releases for one milestone, development proceeds with the next milestone; that is, another small number of releases that focuses on the next small set of features, also thoroughly tested.
MySQL 5.5.0-m2 is the first release for Milestone 2. The new features of this milestone may be considered to be initially of beta quality. For subsequent Milestone 2 releases, we plan to use increasing version numbers (5.5.1 and higher) while continuing to employ the “-m2” suffix. For Milestone 3, we plan to change the suffix to “-m3”. Version designators with “-alpha” or “-beta” suffixes are no used.
You may notice that the MySQL 5.5.0 release is designated as Milestone 2 rather than Milestone 1. This is because MySQL 5.4 was actually designated as Milestone 1, although we had not yet begun referring to milestone numbers as part of version numbers at the time.
Functionality added or changed:
Incompatible Change:
MySQL Server now includes a plugin services interface that
complements the plugin API. The services interface enables
server functionality to be exposed as a “service”
that plugins can access through a function-call interface. The
libmysqlservices library provides access to
the available services and dynamic plugins now must be linked
against this library (use the -lmysqlservices
flag). For an example showing what
Makefile.am should look like, see
MySQL Services for Plugins.
(Bug#48461)
Incompatible Change: Several changes have been made regarding the language and character set of error messages:
The --language option for
specifying the directory for the error message file is now
deprecated. The new
--lc-messages-dir and
--lc-messages options should
be used instead, and
--language is handled as an
alias for --lc-messages-dir.
The language system
variable has been removed and replaced with the new
lc_messages_dir and
lc_messages system
variables. lc_messages_dir
has only a global value and is read only.
lc_messages has global and
session values and can be modified at runtime, so the error
message language can be changed while the server is running,
and individual clients each can have a different error
message language by changing their session
lc_messages value to a
different locale name.
Error messages previously were constructed in a mix of
character sets. This issue is resolved by constructing error
messages internally within the server using UTF-8 and
returning them to the client in the character set specified
by the
character_set_results
system variable. The content of error messages therefore may
in some cases differ from the messags returned previously.
For more information, see Setting the Error Message Language, and Character Set for Error Messages.
Bugs fixed:
Important Change: Security Fix:
It was possible to circumvent privileges through the creation of
MyISAM tables employing the DATA
DIRECTORY and INDEX DIRECTORY
options to overwrite existing table files in the MySQL data
directory. Use of the MySQL data directory in DATA
DIRECTORY and INDEX DIRECTORY is
now disallowed. This is now also true of these options when used
with partitioned tables and individual partitions of such
tables.
(Bug#32167, CVE-2008-2079)
See also Bug#39277.
Security Fix: MySQL clients linked against OpenSSL can be tricked not to check server certificates. (Bug#47320, CVE-2009-4028)
Security Fix: The server crashed if an account without the proper privileges attempted to create a stored procedure. (Bug#44658)
Incompatible Change:
For system variables that take values of ON
or OFF, OF was accepted as
a legal variable. Now system variables that take
“enumeration” values must be assigned the full
value. This affects some other variables that previously could
be assigned using unambiguous prefixes of allowable values, such
as tx_isolation.
(Bug#34828)
Incompatible Change:
In binary installations of MySQL, the supplied
binary-configure script would start and
configure MySQL, even when command help was requested with the
--help command-line option. The
--help, if provided, will no longer start and
install the server.
(Bug#30954)
Incompatible Change: Access privileges for several statements are more accurately checked:
CHECK TABLE requires some
privilege for the table.
CHECKSUM TABLE requires
SELECT for the table.
CREATE TABLE ... LIKE requires
SELECT for the source table
and CREATE for the
destination table.
SHOW COLUMNS displays
information only for those columns you have some privilege
for.
SHOW CREATE TABLE requires
some privilege for the table (previously required
SELECT).
SHOW CREATE VIEW requires
SHOW VIEW and
SELECT for the view.
SHOW INDEX requires some
privilege for any column.
SHOW OPEN TABLES displays
only tables for which you have some privilege on any table
column.
