2017.04.13

MySQL

MySQL Community Server 5.6.36がリリースされました

オリジナル版:https://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-36.html

2017年4月10日に、MySQL Community Server 5.6.36がリリースされました。同製品は、General Availability(GA版)となります。

Changes in MySQL 5.6.36(主な変更点)

 Packaging Notes(パッケージ関連)

     * Changes in RPM package structure require a larger set of packages to be removed to 
        install MySQL Server cleanly. (Bug #25603087)

        RPMパッケージが、MySQL Serverを正常にインストールできるように、より多くのパッケージの
        削除を求めるようになりました。

     * To avoid potential race conditions, Debian packages now use the GNU install utility 
        rather than a combination of mkdir, touch, and chown. (Bug #25258829)

        潜在的な競合を避けるため、Debian向けのパッケージでは、従来のmkdir / touch / chown 
        ではなく、GNUの install utility を使用するようになりました。

 Security Notes(セキュリティ関連)

     * The mysql_options() C API function now supports a MYSQL_OPT_SSL_MODE option. 
       The only permitted option value is SSL_MODE_REQUIRED, to require a secure connection 
       to the server. It causes mysql_real_connect() to fail if an encrypted connection 
       cannot be obtained, without falling back to an unencrypted connection. 
       Thus, mysql_real_connect() returns an error if the server does not support SSL or 
       the client is not configured to use SSL. The client/server exchange terminates 
       immediately after the initial server packet has been received if the server indicates 
       that it does not support SSL.
       
       mysql_options()が、MYSQL_OPT_SSL_MODEオプションをサポートするようになりました。
       設定値は"SSL_MODE_REQUIRED"のみが許可され、サーバへのセキュアな接続が必須となります。
       この設定が有効な時、mysql_real_connect()で暗号化されていない接続は失敗するようになります。
       それに伴い、もしサーバがSSLをサポートしていない、もしくはクライアント側でSSLが有効になって
       いない場合は、mysql_real_connect()がエラーを返します。
       エラーとなった場合は、client/server間の通信は即座に終了します。
       
       To require an encrypted connection in MySQL 5.5, the standard MySQL client programs 
       call mysql_options() to set MYSQL_OPT_SSL_MODE if the --ssl-mode=REQUIRED command-line
       option was specified. Third-party applications that must be able to require encrypted 
       connections can use the same technique. For details, see mysql_ssl_set().
       
       MySQL5.5環境で暗号化接続が必要な場合は、コマンドラインオプションで--ssl-mode=REQUIREDを
       明示的に指定することで、標準のMySQL client がMYSQL_OPT_SSL_MODEを有効にします。
       サードパーティ製のアプリケーションを使用している場合は、それらが同じ暗号化技術(SSL)を
       使用するよう設定する必要があります。詳細は、mysql_ssl_set()のマニュアルを参照してください。

 Functionality Added or Changed(機能の追加・変更)

     * Replication: When a negative or fractional timeout parameter was supplied to 
       WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), the server behaved in unexpected ways. 
       With this fix: (Bug #24976304, Bug #83537)
       
       【レプリケーション関連】
       WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS()に、負の数もしくは小数が渡された時に、
       MySQLが予期せぬ挙動をしてしまう不具合を修正しました。内容は以下の通りです。

       + A fractional timeout value is read as-is, with no round-off.
       
         小数の値はそのまま適用され、四捨五入されることはありません。
       
       + A negative timeout value is rejected with an error if the server is on 
         a strict SQL mode; if the server is not on a strict SQL mode, the value makes
         the function return NULL immediately without any waiting and then issue a warning.
         
         もし、サーバでstrict SQLモードが設定されている場合は、負の数が渡された時に
         エラーになります。strict SQLモードではない場合は、NULLを返すようになります。
         (待ち状態やWarningは発生しません)

     * The performance of UTF-8 binary collations was improved. 
       (Bug #24788778, Bug #83247, Bug #25076862)
       
       UTF-8のバイナリコレクションの性能が向上しました。
       
     * mysql_secure_installation is more strict about what it considers valid yes and no 
       responses. (Bug #13344753, Bug #62925)
       
       mysql_secure_installationスクリプトの"yes"/"no"判定がより厳密になりました。

 Bugs Fixed(バグ修正)

     * InnoDB: The restriction that required the first undo tablespace to use space ID 1 
       was removed. The first undo tablespace may now be assigned a space ID other than 1. 
       Space ID values for undo tablespaces are still assigned in a consecutive sequence. 
       (Bug #25551311)
       
       【InnoDB関連】最初のundoテーブルスペースでは"ID:1"を使わなければいけない、という制限が
       なくなりました。そのため、1以上のスペースIDが割り当てられる可能性があります。
       ただし、undoテーブルスペースに割り当てられるスペースIDは、これまで通りシーケンシャルな
       数字になります。

     * InnoDB: Compiling the server without the Performance Schema caused a build failure. 
       (Bug #25348787)
       
       【InnoDB関連】Performance_schemaなしでMySQL serverをコンパイルした時に、ビルドエラーが
       発生する不具合を修正しました。

     * InnoDB: A server exit on restart was caused by missing my_thread_init() and 
       my_thread_exit() functions for background threads that initialize the st_my_thread_var 
       structure. (Bug #25167032)
       
       【InnoDB関連】st_my_thread_varを初期化する my_thread_init() / my_thread_exit()関数が
       失敗した時にサーバが異常終了してしまう不具合を修正しました。

     * InnoDB: Performance Schema instrumentation for InnoDB file I/O was disabled on Windows. 
       (Bug #14025581)
       
       【InnoDB関連】Windows版MySQLで、Percormance_schema の「InnoDBのファイルI/O」関連の
       instrumentが無効になっていた不具合を修正しました。

     * InnoDB: The row_search_mvcc() function unnecessarily traversed the entire table for 
       a range query, which occurred when the record was not in the transaction read view. 
       (Bug #84202, Bug #23481444, Bug #25251375)
       
       【InnoDB関連】トランザクションが読み込んだレコードの中に目的のレコードが含まれて
       いなかった場合に、row_search_mvcc()関数が不必要なテーブルスキャンを実行してしまう
       不具合を修正しました。

     * Replication: When using a multi-threaded slave (slave_parallel_workers greater than 0) 
       the value of Seconds_Behind_Master was incorrect when rotating a relay log. 
       (Bug #23532304)
       
       【レプリケーション関連】マルチスレッドスレーブ(slave_parallel_workers>0)を有効に
       している場合に、リレーログのローテート時にSeconds_Behind_Masterが不正な値になってしまう
       不具合を修正しました。

     * mysqldump failed to properly quote certain identifiers in SQL statements written to 
       the dump output. (Bug #25717383)
      
       mysqldumpが、出力されたSQLステートメントに含まれる一部の識別子を正常に扱うことができない
       不具合を修正しました。

     * For CREATE TABLE statements that specified the table name with a database qualifier and 
       included a DATA DIRECTORY or INDEX DIRECTORY option, an error occurred if there was 
       no default database. (Bug #25514146, Bug #84861)
       
       デフォルトデータベースが設定されていない場合に、database修飾子および DATA DIRECTORY or 
       INDEX DIRECTORYオプションが付いたCREATE TABLE文を実行するとエラーが発生する不具合を
       修正しました。

     * Starting the server with performance_schema_digests_size=1 caused an abnormal exit. 
       (Bug #25492129, Bug #84786)
       
       "performance_schema_digests_size=1"を設定してMySQL serverを起動した時に、
       異常終了していた不具合を修正しました。

     * mysqld_safe did not check whether the directory named by the --basedir option existed. 
       (Bug #25365194)
       
       mysqld_safeが、--basedirオプションで指定されたディレクトリが存在するかどうかチェックを
       していなかった不具合を修正しました。

     * mysqld_safe failed if the error log file named by the --log-error option was a FIFO. 
       (Bug #25356221, Bug #84427)
       
       --log-errorオプションで指定されたエラーログファイルがFIFO形式だった場合に、mysqld_safeが
       エラーとなる不具合を修正しました。

     * mysqld_safe could fail if the --datadir option value ended with a / character.
       (Bug #25319457)
       
       --datadirオプションの設定値が "/" で終わっている時に、mysqld_safeでエラーが発生することが
       あった不具合を修正しました。

     * A recent change to mysqld_safe caused the mysql.server script to be unable to start it 
       if the base directory was specified as an absolute path that differed from the 
       compiled-in default absolute path. (Bug #25319392, Bug #84263)
       
       最近のmysqld_safeに対する変更が原因で、baseディレクトリにコンパイル時のデフォルトとは
       異なる絶対パスが設定されている場合に mysql.server スクリプトが起動できなくなる不具合を
       修正しました。

     * The connection_control plugin failed to compile if the Performance Schema was disabled. 
       (Bug #25308357, Bug #84304)
       
       Performance_schemaが無効になっている場合に、connection_controlプラグインのコンパイルに
       失敗する不具合を修正しました。

     * mysqld_safe --no-defaults did not work (inadvertent consequence of an earlier bug fix). 
       (Bug #25244898, Bug #84173)
       
       mysqld_safe --no-defaults コマンドが上手く機能していなかった不具合を修正しました。
       (それより前のバグ修正が原因と考えられます)

     * Semicolon (;) characters within or between statements could cause distinct digests to 
       be generated from identical statements. (Bug #25244533, Bug #83253)
       
       セミコロン(;)がステートメントの中、もしくは間に含まれていた場合に、同じクエリから
       異なる結果が返ってしまう可能性がある不具合を修正しました。

     * For a client linked against libmysqlclient, invalid memory access could occur during 
       use of prepared statements. (Bug #25164932)
       
       libmysqlclientを使用したクライアントで、prepared statementsを使用した時に不正な
       メモリアクセスが発生することがあった不具合を修正しました。

     * Executing a stored procedure containing a query that accessed a view could allocate 
       memory that was not freed until the session ended. (Bug #25053286)
       
       ビューにアクセスするクエリを含んだストアドプロシージャを実行した時に、セッションが
       終了するまで割り当てられたメモリを解放しない不具合を修正しました。

     * A query could produce incorrect results if the WHERE clause contained a dependent 
       subquery, the table had a secondary index on the columns in the select list followed 
       by the columns in the subquery, and GROUP BY or DISTINCT permitted the query to use 
       a Loose Index Scan. (Bug #24671968, Bug #83005)
       
       以下の条件を満たすクエリが、正しくない結果を返す可能性があった不具合を修正しました。
       ・DEPENDENT SUBQUERYが含まれている
       ・サブクエリが使用するカラムにセカンダリインデックスが貼ってある
       ・GROUP BY or DISTINCT が、「Loose Index Scan」を使用できる

     * A regular expression pattern match into a large string could result in a server exit 
       due to memory allocation failure or integer overflow. (Bug #24449076, Bug #24449090)
       
       巨大な文字列に対して正規表現のパターンマッチを実行すると、メモリの割り当てエラーや
       オーバーフローが発生する可能性があった不具合を修正しました。

     * The QUOTE() function could allocate excessive memory. A limit of max_allowed_packet bytes 
       is now imposed and returns NULL with a warning for attempts to allocate more. 
       (Bug #23195404)
       
       QUOTE関数が過度のメモリを割り当ててしまう不具合を修正しました。max_allowed_packetが
       上限値となり、それ以上のメモリを割り当てそうになった場合は、NULLを返すようになります。

     * Queries that used an aggregate function with DISTINCT could produce incorrect results. 
       (Bug #22686994, Bug #80310)
       
       DISTINCT句を伴う集合関数を使用したクエリが、正しくない結果を返す可能性があった不具合を
       修正しました。

     * With the use_index_extensions flag of the optimizer_switch system variable disabled, 
       some SELECT DISTINCT queries could return incorrect results. (Bug #21749123, Bug #78244)
       
       optimizer_switch変数で、use_index_extensionsを無効にしている場合に、
       一部のSELECT DISTINCTクエリで正しくない結果を返す可能性があった不具合を修正しました。

     * In a replication environment, SET PASSWORD or ALTER USER could fail to execute on 
       the slave due to failure to parse the hash string correctly. (Bug #20228478)
       
       レプリケーション環境下で、スレーブ上で SET PASSWORD or ALTER USER を実行した時に、
       ハッシュ文字列のパースが上手くいかずにエラーとなる不具合を修正しました。

     * Timestamps for server-side prepared statements could be written to the binary log up to
       a second behind timestamps for the corresponding nonprepared statements, leading to time 
       value differences between master and slave servers. 
       (Bug #74550, Bug #19894382, Bug #25187670)
       
       server-side prepared statementsのタイムスタンプが、prepared statements以外のクエリよりも
       数秒遅れてバイナリログに記録されるため、マスタとスレーブ間で不整合が発生する可能性があった
       不具合を修正しました。


上記以外にも、さまざまな変更やバグ修正が行われています。
それらを全て確認する場合は、下記リリースノートを参照して下さい。

http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5.6.36.html

 

MySQL5.6は、世界的に注目されているオープンソースデータベース「MySQL」の1つ前の開発バージョンです(最新はMySQL5.7となります)。MySQL5.5の後継バージョンにあたり、様々な機能や特徴があります。

・セキュリティ機能の向上(mysql_config_editorの実装、SHA-256のサポート)
・InnoDB、オプティマイザ、レプリケーション、パーティショニングの性能向上 
・GTID(Global Transaction ID)の実装 
・Performance_schemaの機能強化 
・オンラインDDLの実装

MySQL5.6には、上記以外にも様々な特徴があります。詳細については、下記URLを参照してください。

https://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html

新たなサーバにMySQL5.6をインストール、または利用中のMySQLからMySQL5.6にアップグレードする際の情報については、以下を参照してください。

https://dev.mysql.com/doc/refman/5.6/en/installing.html

下記のダウンロードページから、MySQLのソースコード及び多数のプラットフォーム用バイナリが入手可能です。

http://dev.mysql.com/downloads/mysql/

その他、ご不明な点がございましたら、以下の公式リファレンスマニュアルをご利用いただけます。

http://dev.mysql.com/doc/refman/5.6/en/

以上