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.
          

