2017.10.17

MySQL

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

オリジナル版:https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-20.html

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

Changes in MySQL 5.7.20 (主な変更点)

Audit Log Notes(アカウント管理関連)

* Event-matching filter rules for the audit_log plugin now support an abort element,
  which can be used to prevent qualifying events from executing. For more information,
  see Audit Log Filtering. This capability can be used, for example, to augment the 
  capabilities of MySQL Enterprise Firewall, which blocks SQL statements on a per-user 
  basis, by writing audit filtering rules that match statements and block them based 
  on characteristics of the statements themselves.

  audit_log pluginプラグインのEvent-matchingフィルタルールが、"abort"機能をサポート
  するようになりました。これにより、指定したイベントが実行されるのを回避できるように
  なります。


Feature Deprecation and Removal Notes(機能の非推奨・削除関連)

* The query cache is now deprecated and is removed in MySQL 8.0. Deprecation includes
  these items:

  クエリキャッシュが非推奨となり、MySQL8.0では機能自体削除されます。非推奨となる対象は
  以下の項目を含んでいます。

  - The FLUSH QUERY CACHE and RESET QUERY CACHE statements.
  - The SQL_CACHE and SQL_NO_CACHE SELECT modifiers.
  - These system variables: have_query_cache, ndb_cache_check_time, query_cache_limit, 
                            query_cache_min_res_unit, query_cache_size, 
                            query_cache_type, query_cache_wlock_invalidate.
  - These status variables: Qcache_free_blocks, Qcache_free_memory, Qcache_hits, 
                            Qcache_inserts, Qcache_lowmem_prunes, Qcache_not_cached, 
                            Qcache_queries_in_cache, Qcache_total_blocks.

* The mysql client by default strips comments in statements sent to the server, and this 
  behavior is controlled using --skip-comments (strip comments), and --comments 
  (preserve comments).
  Comment stripping is now deprecated. This feature and the options to control it will
  be removed in a future MySQL release.

  MySQLクライアントはデフォルトでステートメントに含まれるコメント文をサーバに送信し、
  この挙動は --skip-commentsオプション(コメントを保存しない)と --commentsオプション
  (コメントを保存する)で制御されます。
  このコメント機能は非推奨になります。この機能及びオプションは将来のMySQLリリースで
  削除される予定です。
  
* These syntax constructs for table and column references are now deprecated and will 
  be removed in a future version of MySQL. Instances of these constructs should be 
  changed to remove the leading period.
  
  テーブルやカラムを参照する際の以下の構文は非推奨となり、将来のMySQLバージョンで
  削除される予定です。先頭のピリオドを削除すべきでしょう。
  
  - .col_name
  - .tbl_name
  - .tbl_name.col_name
  

Installation Notes(インストール関連)

* For platforms that use systemd (see Managing MySQL Server with systemd), the data 
  directory is initialized if empty at server startup. This might be a problem if the 
  data directory is a remote mount that has temporarily disappeared: The mount point 
  would appear to be an empty data directory, which then would be initialized as a 
  new data directory. It is now possible to suppress this automatic initialization 
  behavior. specify the following line in the /etc/sysconfig/mysql file (create the 
  file if it does not exist):

    > NO_INIT=true

  systemdを使用するプラットフォーマンでは、スタートアップ時にデータディレクトリが空の
  場合初期化を行います。しかし、これは一時的に空に見えてしまった時に問題となりかねません。
  (例えば、リモートでマウントされたディスクが一時的に空に見えた場合など)
  この自動初期化の挙動を制御できるようになりました。/etc/sysconfig/mysqlファイルに
  以下の設定を追加してください(ファイルが存在しない場合は新規作成)


Packaging Notes(パッケージ関連)

 * mysqladmin was added to Docker/Minimal packages because it is needed by InnoDB Cluster. 
   (Bug #25998285)

   InnoDB Clusterで必要となるため、Docker/Minimalパッケージに mysqladmin が追加されました。
 * Debian/Ubuntu packages now support multiple MySQL instances with systemd. See Managing
   MySQL Server with systemd. (Bug #24559588, Bug #82785)

   Debian/Ubuntuパッケージでsystemdを使った複数MySQLインスタンスがサポートされました。


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

* Certificates automatically generated by mysqld and mysql_ssl_rsa_setup now use X509 v3 
  rather than v1. (Bug #26521654)
       
  mysqld、mysql_ssl_rsa_setup が自動的に生成する証明書が v1 から X509 v3 になりました。


X Plugin Notes(Xプラグイン関連)

* A Mysqlx.Connection.CapabilitiesGet request using MySQL X Protocol did not return the
  complete list of available authentication mechanisms. (Bug #26044113)

  Mysqlx.Connection.CapabilitiesGetが取得する利用可能な認証メカニズムの一覧が正確でない
  不具合を修正しました。

* For mixed case or uppercase schema names, the statement list_objects could incorrectly 
  report a collection as a table. (Bug #25769683)

  スキーマ名が混合ケース、アッパーケースの場合、list_objectsが正しくテーブル名を表示
  できないことがある不具合を修正しました。

* The X Plugin was omitted from the list of plugins to include for testing data directory 
  permissions. (Bug #24823999)

  データディレクトリのパーミッションのテストのためのプラグイン一覧に X Plugin が入って
  いなかった問題を修正しました。


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

* Replication: In previous versions issuing STOP GROUP_REPLICATION stopped the plugin 
  but the server still accepted transactions. This meant the transactions were not 
  transmitted to the group. To make STOP GROUP_REPLICATION safer, now super_read_only 
  is set to ON immediately upon issuing STOP GROUP_REPLICATION, which ensures no 
  transactions are accepted. (Bug #25495067, Bug #84795)

  【Replication関連】以前のバージョンでは、STOP GROUP_REPLICATIONを実行するとプラグインは
  停止しましたが、トランザクションの実行は続けられていました。これによりトランザクションが
  グループ全体に伝播しないことがありました。STOP GROUP_REPLICATIONをより安全にするため、
  STOP GROUP_REPLICATION実行時にすぐにsuper_read_onlyが有効になり、トランザクションが
  適用されないことを保証するようになりました。

* Replication: The group_replication_member_weight variable has been added which enables 
  you to control the election of new primaries in single-primary mode. In previous versions 
  primary election was based on the member's UUID, with the lowest UUID elected as the new 
  primary in the event of fail over. Use this variable to assign numeric weights to members 
  to ensure that specific members are elected, for example during scheduled maintenance of 
  the primary or to ensure certain hardware is prioritised.

  【Replication関連】single-primaryモードで稼働しているときに新しいプライマリーノードの
  選定をユーザが制御できるようgroup_replication_member_weight変数が追加されました。
  以前のバージョンではプライマリノードの選定はUUIDに基づいて行われ、最も低いUUIDのノードが
  プライマリとしてフェイルオーバーされていました。この変数を使って数値で重みづけすることで
  特定のメンバーが選定されることを保証できます。例えば定期メンテナンスで特定のハードウェアを
  優先することも可能です。


Bugs Fixed(バグ修正)

* InnoDB: Invalid error handling code was removed from a function related to tablespace import.
  (Bug #26595476)

  【InnoDB関連】テーブルスペースのインポートに関連する機能から、Invalid error handling codeが
  削除されました。

* InnoDB: A check for discarded partitions during a DML operation only checked the first 
  partition. Failure to check for other discarded partitions caused an assertion failure. 
  (Bug #25942592)

  【InnoDB関連】DML実行中の破棄されたパーティションのチェック機能で、最初のパーティションしか
  チェックしていませんでした。他の破棄されたパーティションチェックによりアサーションエラーが
  発生していました。

* InnoDB: Replication lag occurred on slave instances during large update operations on 
  tables with many partitions. (Bug #25687813, Bug #85352)

  【InnoDB関連】多くのパーティションが存在するテーブルに対して大きな更新処理をかけた時に
  スレーブ上でレプリケーション遅延が発生する不具合を修正しました。

* InnoDB: A failure occurred during an end range comparison. (Bug #25669686)

  【InnoDB関連】終了範囲の比較を行っている最中にエラーが発生する不具合を修正しました。
   
* InnoDB: Enabling the innodb_buffer_pool_load_now setting failed in readonly mode.
  The event that signals the buffer pool load thread was not initialized. (Bug #25586766)

  read_onlyの状態で、innodb_buffer_pool_load_nowを有効にするとエラーが発生します。
  buffer_pool のロードスレッドが初期化されていないことが原因です。

* InnoDB: A long wait for a dictionary operation lock held by a full-text search 
  synchronization operation caused a server exit. (Bug #24938374)
  
  【InnoDB関連】全文検索の同期処理によって発生するディレクトリのロック待ちが長期に渡ると、
  サーバでエラーとなる不具合を修正しました。

* Partitioning: Queries involving NULL were not always handled correctly on tables 
  that were partitioned by LIST. (Bug #76418, Bug #20748521)
  References: See also: Bug #86255, Bug #26034430.

  【Partitioning関連】LIST型のパーティションが設定されたテーブルに対して NULL が含まれた
  クエリを実行すると正しく処理されない場合がある不具合を修正しました。

* Replication: If hostname resolution was not working for a member in Group Replication, 
  the error returned when attempting to connect was referring to credentials. 
  The error message has been improved to describe the problem with hostname resolution. 
  (Bug #26368004)
  
  【Replication関連】グループレプリケーション環境で、メンバー間のホスト名の解決が上手く
  できない場合に、他ノードへの接続時にエラーが返されていました。この時のエラーメッセージが
  ホスト名解決の問題であることを示すよう改善されました。

* Replication: If the options file contained Group Replication related settings the server
  could stop unexpectedly on start up. (Bug #26314472)

  【Replication関連】オプションファイルにGroup Replicationに関連する設定が含まれている場合、
  MySQL起動時に予期せぬ停止が起きてしまう不具合を修正しました。

* Replication: Group Replication partition threads were not visible in the Performance Schema 
  tables. (Bug #26241008)

  【Replication関連】Performance Schemaのテーブル上で Group Replication のパーティション
  スレッドが表示されない不具合を修正しました。

* MSI packages for Windows failed to detect when Microsoft Visual C++ 2010 Redistributable 
  Package was installed. (Bug #26501092, Bug #87139)

  Microsoft Visual C++ 2010 Redistributableパッケージがインストールされていると、
  Windows向けのMSIインストーラが失敗する不具合を修正しました。

* The server failed to check the maximum path length for partition names. (Bug #26390632)
  
  パターン名におけるパスの最大長の検査に失敗する不具合を修正しました。

* Identifiers containing a mixture of backslashes and backticks could be parsed 
  incorrectly. (Bug #26372491)

  バックスラッシュとバッククォートが織り交ざった識別子が正しくパースできない不具合を
  修正しました。

* Uninstalling the daemon_memcached plugin caused a serious error. (Bug #25909540)

  daemon_memcachedをアンインストールすると深刻なエラーが発生してしまう不具合を
  修正しました。

* The Performance Schema failed to check the maximum host length for client 
  connections. (Bug #25510805)

  Performance Schema がクライアントのホスト名の最大長検査に失敗する不具合を修正しました。

* If a stored function was considered a constant by the optimizer, calling it from 
  a subquery in a NOT IN condition in the WHERE clause could cause a server exit. 
  (Bug #23577867)

  ストアドファンクションがオプティマイザに定数と判断された場合、WHERE条件に含まれる
  NOT IN句内のサブクエリとしてファンクションが実行されるとサーバがエラーとなる不具合を
  修正しました。

* If a session rolled back to a savepoint and then was killed, the statements up to 
  the point of the savepoint could be committed. (Bug #22350047, Bug #79596)

  セッションがセーブポイントまでロールバックし、キルされた場合、セーブポイント地点
  までに実行されたステートメントがコミットされることがありました。

上記以外にも、さまざまな変更やバグ修正が行われています。それらを全て確認する場合は、下記リリースノートを参照して下さい。 https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-20.html


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

   - パフォーマンスやスケーラビリティの向上
   - JSON形式のサポート
   - マルチソースレプリケーションの実装
   - SYSスキーマの導入
   - セキュリティの向上
   - InnoDBにおけるGIS(位置データ)の対応

MySQL5.7には、上記以外にも様々な特徴があります。詳細については、下記URLを参照してください。
http://mysqlserverteam.com/whats-new-in-mysql-5-7-generally-available/

新たなサーバにMySQL5.7をインストール、または利用中のMySQLからMySQL5.7にアップグレードする際の情報については、以下を参照してください。
http://dev.mysql.com/doc/refman/5.7/en/installing.html

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

その他、ご不明な点がございましたら、以下の公式リファレンスマニュアルをご利用いただけます。
http://dev.mysql.com/doc/refman/5.7/en/

以上