2011.03.17

MySQL

MySQL 5.5.10 がリリースされました

オリジナル版:http://dev.mysql.com/doc/refman/5.5/en/news-5-5-10.html

MySQL 5.5.10は世界でもっともポピュラーなオープンソースデータベースの5.5のプロダクトバージョンの新しいバージョンです。MySQL 5.5.10はプロダクションシステムでの使用をお勧めします。

MySQL 5.5は最新のマルチCPUやマルチコアハードウェアやオペレーティングシステムの利点を生かし、MySQLデータベースのパフォーマンスとスケーラビリ ティを改善するための影響の大きい変更をいくつか含んでいます。現在ではInnoDBがMySQLデータベースのデフォルトのストレージエンジンであり、 ACIDトランザクション、参照整合性、クラッシュリカバリをデフォルトで提供しています。

MySQL 5.5は以下の多くの新しい強化も含んでいます:

   - Windowsにおける特有の機能と改善を利用した著しいパフォーマンス向上
   - 新しい準同期レプリケーションとレプリケーションハートビートによるより高いレベルの可用性
   - 改善されたインデックスとテーブルパーティショニング、SIGNAL/RESIGNALサポート、そして新しいPERFORMANCE_SCHEMAに含まれる強化された診断法による改善されたユーザビリティ

MySQL 5.5の新機能のより完全な概観については、以下のリソースを参照下さい。

MySQL 5.5 GA、Tomas Ulinのインタビュー:

http://dev.mysql.com/tech-resources/interviews/thomas-ulin-mysql-55.html

ドキュメント:

http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html

ホワイトペーパー: MySQL 5.5の新機能

http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html

製品レベルのシステムでMySQLを稼動させているならば、MySQL製品、バックアップ、モニタリング、モデリング、開発、管理ツールの包括的なセット を含むMySQLパフォーマンス、セキュリティ、アップタイムの高いレベルを実現するMySQL Enterprise Editionの製品詳細に注目してください。

http://mysql.com/products/enterprise/

新しいサーバへMySQL 5.5.10をインストールする情報として、以下のMySQLのインストールドキュメントを参照してください。

http://dev.mysql.com/doc/refman/5.5/en/installing.html

前回のMySQLリリースからアップグレードするには、以下のアップグレードについての注意事項を参照してください。

http://dev.mysql.com/doc/refman/5.5/en/upgrading-from-previous-series.html

 

MySQL Server 5.5は、http://dev.mysql.com/downloads/とミラーサイトのダウンロード・ページから、ソースコード及び多くのプラットフォームのためのバイナリで現在利用可能です。

すべてのミラーサイトが現在、最新であるとは限らないことに注意してください。
あるミラーサイトでこのバージョンを見つけることができない場合は、再度確認を行うか、あるいは別のダウンロード・サイトを選択してください。

バグレポート、バグ修正、パッチ等の情報をお待ちしております。
http://forge.mysql.com/wiki/Contributing

 

次の節では、MySQL 5.5の以前のバージョンからのMySQLソースコードの変更を記載しています。これはオンラインでも閲覧できます。
http://dev.mysql.com/doc/refman/5.5/en/news-5-5-8.html

D.1.2. Changes in MySQL 5.5.10

    Configuration Notes:

      * MySQL releases are now built on all platforms using CMake
        rather than the GNU autotools, so autotools support has been
        removed. For instructions on building MySQL with CMake, see
        Section 2.11, "Installing MySQL from Source." Third-party
        tools that need to extract the MySQL version number formerly
        found in configure.in can use the VERSION file. See Section
        2.11.6, "MySQL Configuration and Third-Party Tools."

    C API Notes:

      * Incompatible Change: The shared library version of the client
        library was increased to 18 to reflect ABI changes, and avoid
        compatibility problems with the client library in MySQL 5.1.
        Note that this is an incompatible change between 5.5.10 and
        earlier 5.5 versions, so client programs that use the 5.5
        client library should be recompiled against the 5.5.10 client
        library.

    Functionality added or changed:

      * MySQL distributions now include auth_socket, a server-side
        authentication plugin that authenticates clients that connect
        from the local host through the Unix socket file. The plugin
        uses the SO_PEERCRED socket option to obtain information about
        the user running the client program (and thus can be built
        only on systems that support this option. For a connection to
        succeed, the plugin requires a match between the login name of
        the connecting client user and the MySQL user name presented
        by the client program. For more information, see Section
        5.5.6.1.4, "The Socket Peer-Credential Authentication Plugin."
        (Bug #59017, Bug #11765993)

      * The mysql_upgrade, mysqlbinlog, mysqlcheck, mysqlimport,
        mysqlshow, and mysqlslap clients now have --default-auth and
        --plugin-dir options for specifying which authentication
        plugin and plugin directory to use. (Bug #58139)

      * Boolean system variables can be enabled at run time by setting
        them to the value ON or OFF, but previously this did not work
        at server startup. Now at startup such variables can be
        enabled by setting them to ON or TRUE, or disabled by setting
        them to OFF or FALSE. Any other nonnumeric variable is
        invalid. (Bug #46393)
        See also Bug #51631.

      * Previously, for queries that were aborted due to sort problem,
        the server wrote the message Sort aborted to the error log.
        Now the server writes more information to provide a more
        specific message, such as:
         [ERROR] mysqld: Sort aborted: Out of memory (Needed 24 bytes)
         [ERROR] mysqld: Out of sort memory,
         consider increasing server sort buffer size
         [ERROR] mysqld: Sort aborted: Out of sort memory,
         consider increasing server sort buffer size
         [ERROR] mysqld: Sort aborted: Incorrect number of arguments for
         FUNCTION test.f1; expected 0, got 1
        In addition, if the server was started with --log-warnings=2,
        the server write information about the host, user, and query.
        (Bug #36022, Bug #11748358)

      * mysqldump --xml now displays comments from column definitions.
        (Bug #13618)

      * MySQL distributions now include mysql_clear_password, a
        client-side authentication plugin that sends the password to
        the server without hashing or encryption. Although this is
        insecure, and thus apprpropriate precautions should be taken
        such as using an SSL connection, the plugin is useful in
        conjunction with server-side plugins that must have access to
        the original password in clear text. For more information, see
        Section 5.5.6.1.3, "The Clear Text Client-Side Authentication
        Plugin."

    Bugs fixed:

      * InnoDB Storage Engine: Raised the number of I/O requests that
        each AIO
        (http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_aio
        ) helper thread could process, from 32 to 256. The new limit
        applies to Linux and Unix platforms; the limit on Windows
        remains 32. (Bug #59472)

      * InnoDB Storage Engine: InnoDB returned values for "rows
        examined" in the query plan that were higher than expected.
        NULL values were treated in an inconsistent way. The
        inaccurate statistics could trigger "false positives" in
        combination with the MAX_JOIN_SIZE setting, because the
        queries did not really examine as many rows as reported. (Bug
        #30423)

      * Replication: When using the statement-based logging format,
        INSERT ON DUPLICATE KEY UPDATE and INSERT IGNORE statements
        affecting transactional tables that did not fail were not
        written to the binary log if they did not insert any rows.
        (With statement-based logging, all successful statements
        should be logged, whether they do or do not cause any rows to
        be changed.) (Bug #59338)

      * Replication: Formerly, STOP SLAVE stopped the slave I/O thread
        first and then stopped the slave SQL thread; thus, it was
        possible for the I/O thread to stop after replicating only
        part of a transaction which the SQL thread was executing, in
        which case---if the transaction could not be rolled back
        safely---the SQL thread could hang.
        Now, STOP SLAVE stops the slave SQL thread first and then
        stops the I/O thread; this guarantees that the I/O thread can
        fetch any remaining events in the transaction that the SQL
        thread is executing, so that the SQL thread can finish the
        transaction if it cannot be rolled back safely. (Bug #58546)

      * DES_DECRYPT() could crash if the argument was not produced by
        DES_ENCRYPT(). (Bug #59632, Bug #11766505)

      * The server and client did not always properly negotiate
        authentication plugin names. (Bug #59453)

      * --autocommit=ON did not work (it set the global autocommit
        value to 0, not 1). (Bug #59432)

      * A query of the following form returned an incorrect result,
        where the values for col_name in the result set were entirely
        replaced with NULL values:
         SELECT DISTINCT col_name ... ORDER BY col_name DESC;
        (Bug #59308, Bug #11766241)

      * SHOW PRIVILEGES did not display a row for the PROXY privilege.
        (Bug #59275)

      * SHOW PROFILE could truncate source file names or fail to show
        function names. (Bug #59273, Bug #11766214)

      * DELETE or UPDATE statements could fail if they used DATE or
        DATETIME values with a year, month, or day part of zero. (Bug
        #59173)

      * The ESCAPE clause for the LIKE operator allows only
        expressions that evaluate to a constant at execution time, but
        aggregate functions were not being rejected. (Bug #59149)

      * Memory leaks detected by Valgrind, some of which could cause
        incorrect query results, were corrected. (Bug #59110, Bug
        #11766075)

      * The DEFAULT_CHARSET and DEFAULT_COLLATION CMake options did
        not work. (Bug #58991)

      * An OUTER JOIN query using WHERE column IS NULL could return an
        incorrect result. (Bug #58490, Bug #11765513)

      * Starting the server with the --defaults-file=file_name option,
        where the file name had no extension, caused a server crash.
        (Bug #58455, Bug #11765482)

      * Outer joins with an empty table could produce incorrect
        results. (Bug #58422)

      * In debug builds, SUBSTRING_INDEX(FORMAT(...), FORMAT(...))
        could cause a server crash. (Bug #58371)

      * When mysqladmin was run with the --sleep and --count options,
        it went into an infinite loop executing the specified command.
        (Bug #58221)

      * Some string manipulating SQL functions use a shared string
        object intended to contain an immutable empty string. This
        object was used by the SQL function SUBSTRING_INDEX() to
        return an empty string when one argument was of the wrong
        datatype. If the string object was then modified by the SQL
        function INSERT(), undefined behavior ensued. (Bug #58165, Bug
        #11765225)

      * Parsing nested regular expressions could lead to recursion
        resulting in a stack overflow crash. (Bug #58026, Bug
        #11765099)

      * The fix for Bug#25192 caused load_defaults() to add an
        argument separator to distinguish options loaded from
        configure files from those provided on the command line,
        whether or not the application needed it. (Bug #57953)

      * The mysql client went into an infinite loop if the standard
        input was a directory. (Bug #57450)

      * Outer joins on a unique key could return incorrect results.
        (Bug #57034)

      * The expression const1 BETWEEN const2 AND field was optimized
        incorrectly and produced incorrect results. (Bug #57030, Bug
        #11764215)

      * Some RPM installation scripts used a hardcoded value for the
        data directory, which could result in a failed installation
        for users who have a nonstandard data directory location. The
        same was true for other configuration values such as the PID
        file name. (Bug #56581, Bug #11763817)

      * On FreeBSD and OpenBSD, the server incorrectly checked the
        range of the system date, causing legal values to be rejected.
        (Bug #55755, Bug #11763089)

      * Sorting using ORDER BY AVG(DISTINCT decimal_col) caused a
        server crash or incorrect results. (Bug #52123, Bug #11759784)

      * When using ExtractValue() or UpdateXML(), if the XML to be
        read contained an incomplete XML comment, MySQL read beyond
        the end of the XML string when processing, leading to a crash
        of the server. (Bug #44332)

      * DATE_ADD() and DATE_SUB() return a string if the first
        argument is a string, but incorrectly returned a binary
        string. Now they return a character string with a collation of
        connection_collation. (Bug #31384, Bug #11747221)