2021.05.11

MySQL

MySQL Community Server 5.7.34 GA版(リリース日:2021年4月20日)

主な変更点

■ 設定関連

● CMAKE_BUILD_TYPE CMakeオプションは、リリースビルドタイプをサポートするようになりました。これは、RelWithDebInfoビルドタイプに似ていますが、ビルドサイズを小さくするためにデバッグ情報を省略しています。(バグ #27874068、バグ #32287863)

■ パッケージ関連

● バンドルされたlibeditライブラリはバージョン 20190324-3.1にアップグレードされました。(バグ #32433089)

● システムcurlライブラリにリンクするのではなくcurlを含むバイナリパッケージは、curl 7.74.0を使用するようにアップグレードされました。

■ セキュリティ関連

● MySQLサーバー用のリンクされたOpenSSLライブラリがバージョン 1.1.1kに更新されました。新しいOpenSSLバージョンで修正された問題については、以下で説明されています:
  https://www.openssl.org/news/cl111.txtおよび
  https://www.openssl.org/news/vulnerabilities.html
 (バグ #32680637)

■ 追加・変更された機能

● Microsoft Windows:named_pipe_full_access_groupシステム変数がデフォルトで空の文字列('')になり、名前付きパイプ接続が安全になりました。以前は、'*everyone*'がデフォルト値でした。有効なWindowsローカルグループ名で置き換えることができます。

■ 主なバグ修正

● InnoDB:MySQL 5.7にシャードrw_lock_statsカウンターが導入されたため、CPUキャッシュ効率が低下しました。MySQL 5.7のこの問題に対処するために、シャーディング方法が変更されました。最適なパフォーマンスを実現するために、MySQL8.0ではrw_lock_statsカウンターは削除されています。(バグ #32225367)

● InnoDB:インデックス付き仮想列とインデックス付き外部キー制約列を持つ子テーブルでカスケード更新を開始した親テーブルでの削除操作により、仮想列の破損が発生しました。(バグ #32124113)

● InnoDB: An adaptive hash index (AHI) latch was held in shared mode by a thread truncating a large table, causing mutex waits for other threads. The AHI latch was not required and has been removed. (Bug #32032897)

● InnoDB:テーブル共有インスタンス(m_shareオブジェクト)とディクショナリテーブルインスタンスのオープンとクローズのシーケンスは、古くなったディクショナリインデックスを指す可能性のある古いm_shareオブジェクトにアクセスできないようにするために変更されました。

● InnoDB: An online ALTER TABLE operation failed with an “Incorrect key file for table” error due to an unnecessary encryption status check that was performed when reading online DDL row logs. (Bug #31529221, Bug #99938)

● レプリケーション:以前の全てのバイナリログファイルがその保持期間が終了したために起動時に削除された場合、新しいバイナリログファイルには空のPrevious_gtidsイベントが含まれ、レプリケーションでエラーを引き起こす可能性がありました。初期化の順序が変更され、以前のGTIDセットが起動時に作成された新しいバイナリログファイルに書き込まれた後にのみ、以前のバイナリログファイルがパージされるようになりました。(バグ #32134875、バグ #101533)

● レプリケーション:バイナリログファイルがその保持期間が終了したために起動時に削除された場合、失われたGTIDに関連するデバッグビルドでアサーションが発生しました。 (バグ #32008512、バグ #101137)

● レプリケーション:システム変数が更新され、様々なクライアントによって読み取られている時に、バイナリログファイルがローテーションされた場合、デッドロックが発生する可能性がありました。(バグ #31774422)

● レプリケーション:レプリカのSQLスレッドのSHOW PROCESSLISTステートメントの出力は、レプリカが実際にキャッチアップされた時に最後のクエリを現在適用されているものとして表示することがありました。(バグ #30521198、バグ #97560)

● クエリ文字列が、書き換えられる前に表示されました。(バグ #32335263、バグ#32628376)

● libeditライブラリを使用してコンパイルされたビルドの場合、mysqlクライアントが--default-character-set=utf8オプションを指定して呼び出された場合、libeditはマルチバイト文字の入力を拒否しました。(バグ #32329078、バグ #32583436、バグ#102806)

● Windowsでは、結果セットが大きいと、mysqlクライアントが予期せず終了する可能性がありました。(バグ #32316323、バグ #102051)

● 内部キューのロックが不適切な場合、mysqlpumpが予期せず終了する可能性がありました。(バグ #32067013)

● グループレプリケーションが停止している時に、group_replication_applierチャネルに対してSTART REPLICA SQL_THREADステートメントとSTOP REPLICASQL_THREADステートメントを使用できるようになりました。これにより、オペレーターは、サーバーをグループに再参加させることなく、グループを離れたサーバーに残っている未適用のトランザクションを適用できます。(バグ #32027612、バグ #32414767)

● mysqlクライアントがバッチモードで使用された時に、そのパーサーは、USEデータベース名が引用されると、USEとそれに続くDROP DATABASEによって混乱する可能性がありました。(バグ #32015466、バグ #101124)

● サブクエリのORDER BY句を最適化する際に、外部のSELECTで参照されているサブクエリツリーをクリーンアップする可能性があり、早期の終了につながる可能性がありました。(バグ #31721430)

● mysql.funcシステムテーブルの名前が正しくないと、サーバーが予期しない動作をする可能性がありました。(バグ #31674599)

● セッションが、独自の監査を無効にする可能性がありました。(バグ #31630954)

● ストアドプログラムのローカル変数の誤った取り扱いにより、予期しないサーバーの動作が発生する可能性がありました。(バグ #30366310)

● プラグインをアンインストールすると、プリペアドステートメントのその後の実行に影響を与える可能性がありました。(バグ #29363867)

全ての変更点やバグ修正については、以下のページをご覧ください。
MySQL Community Server 5.7.34 リリースノート(MySQLウェブサイト):
https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-34.html

MySQL Editions

MySQL EditionsMySQLのサブスクリプションは、24時間365日体制でお客様をサポートいたします。さらに MySQL Enterprise Edition では、データベース管理者支援ツール MySQL Enterprise Monitor やバックアップツール MySQL Enterprise Backup をご利用いただけます。

MySQL Editionsの詳細