2024.01.24

MySQL

MySQL Community Server 8.0.36 GA版(リリース日:2024年1月16日)

監査ログ関連

  • 場合によっては、audit_log_read( audit_log_read_bookmark() ) を呼び出すとメモリ不足エラーが発生することがありました。(バグ #35957453)

コンパイル関連

  • Microsoft Windows: MySQLは、Visual Studio 2022を使用すると正しくコンパイルされませんでした。(バグ #35967676)
  • -DWITH_ZLIB=systemチェックを改善しました。(バグ #35968195)
  • Linuxでのコンパイルに関して、OpenSSL 3ライブラリのno-error=deprecated-declarationsフラグがno-deprecated-declarationsに変更されました。
    (バグ #112209、バグ #35755328)

オプティマイザー関連

  • 採用されたハッシュアルゴリズムでは、HASHフィールドを使用して一意性をチェックする時にパフォーマンスが低下しました。(バグ #109548、バグ #34959356)

パッケージ関連

  • 重要な変更: MySQLのダウンロード可能なパッケージの署名に使用されるGnuPGビルドキー(A8D3785C)が更新されました。以前のGnuPGビルドキー(3A79BD29)は、2023年12月14日に期限切れになりました。GnuPG署名チェックを使用してMySQLのダウンロード可能なパッケージの整合性と信頼性を検証する方法、または、公開GnuPGビルドキーのコピーを取得する方法については、Signature Checking Using GnuPGを参照してください。
    GnuPGキーの更新により、repo.mysql.comを使用するように設定されたシステムは、aptまたはyumを使用してMySQL 8.0.36以降またはMySQL 8.3.0以降にアップグレードする時に署名検証エラーを報告する場合があります。この問題を解決するためには、次のいずれかの方法を使用します:
    • https://dev.mysql.com/downloads/からMySQL APTまたはYUMリポジトリセットアップパッケージを手動で再インストールします。
    • MySQL GnuPG公開キーをダウンロードし、システムGPGキーリングに追加します。

パフォーマンススキーマ関連

  • ストアドプログラムを実行する時に、パフォーマンススキーマインストゥルメンテーションにより不必要なオーバーヘッドが発生しました。
    このリリースでは、statement/sp/stmtを除く全てのストアドプロシージャマイクロ命令(statement/sp/%)がデフォルトで無効になっています。(バグ #27934653)
  • パフォーマンススキーマステートメントインストゥルメンテーションのパフォーマンスが向上しました。具体的には、MESSAGE_TEXTデータの収集がより効率的になりました。(バグ #112621、バグ #35916912)

プラガブル認証

  • このリリース以降、PAM認証プラグインのデバッグに使用されるAUTHENTICATION_PAM_LOG環境変数の動作が次のように変更されます:
    • AUTHENTICATION_PAM_LOGを任意の値に設定すると(次の項目で説明する場合を除き)、診断メッセージにパスワードが含まれなくなります。
    • 診断メッセージにパスワードを含めるためには、AUTHENTICATION_PAM_LOG=PAM_LOG_WITH_SECRET_INFOを設定します。

    詳細については、PAM Authentication Debuggingを参照してください。(バグ #74313、バグ #20042010)

追加または変更された機能

  • 重要な変更: OpenSSLライブラリがバンドルされているプラットフォームに関して、MySQL Server用のリンクされたOpenSSLライブラリがバージョン 3.0.12に更新されました。OpenSSL バージョン 3.0.12で修正された問題については、https://www.openssl.org/news/cl30.txtで説明されています。(バグ #36033684)

    主なバグ修正

    • InnoDB: アダプティブハッシュインデックス(AHI)で使用されるハッシュ関数が改善され、パフォーマンスが向上しました。(バグ #35449386)
    • InnoDB: 起動時に変更バッファエントリが存在する場合、無効になったinnodb_validate_tablespace_pathsオプションは強制されなくなり、代わりにMySQLサーバーは全てのテーブルスペースの検証を続行します。そうしないと、セカンダリインデックスが破損する可能性がありました。(バグ #35208990)
    • InnoDB: DDLとDMLの同時操作中に、オンラインログが大きくなりすぎると、DDLが失敗する可能性がありました。この問題を防ぐためにバッファ処理が改善されました。(バグ #35115601)
    • レプリケーション: パフォーマンススキーマメモリインストゥルメンテーションでLog_eventイベントに使用される現在のバイト数の計算に関する問題により、レプリカ上のsql/replica_sqlスレッドが際限なく増加し、サイズが減少しないように見えました。(バグ #35546877)
    • レプリケーション: CREATE TABLE AS SELECTのレプリケーション中にレプリケーションを停止すると、サーバーが終了しました。(バグ #33934013)
    • グループレプリケーション: レプリケーションチャネルがエラー状態にある時に強制的にSTART GROUP_REPLICATIONを実行すると、サーバーが計画外に終了する可能性がありました。(バグ #34724344)
    • Enterprise Linux RPMを構築する場合、ビルドスクリプトはより新しいストリップコマンド(/opt/rh/gcc-toolset-12の下)を指すようになり、対応するdwzツールが利用可能であることを確認するようになりました。(バグ #36086236)
    • 場合によっては、不適切に初期化されたプラグインによってインストールされたロード可能な関数を呼び出すと、計画外のシャットダウンが発生しました。(バグ #35889261)
    • handler.ccのhandler::ha_index_end()でアサーションエラーが見つかり、修正されました。(バグ #35877600)
    • MYSQL_FIREWALLプラグインがカスタムスキーマを使用するように設定されていたが、サーバーの起動時に適切に初期化できなかった場合、後続のエラーや障害が発生する可能性がありました。(バグ #35853298)
    • GROUP BYを使用した一部のネストされたクエリが正しく処理されませんでした。(バグ #35846402、バグ #35945822)
      参考: この問題は、バグ #32918400のリグレッションです。
    • 限られたケースではありますが、データをMD5()暗号化関数に渡すとサーバーが停止する可能性がありました。(バグ #35764496)
    • ビューからの一部の副選択は、常に正しく処理されるとは限りませんでした。(バグ #35738548)
    • 多数のテーブルの一括名前変更などの操作を実行している時に、CREATE TABLE ... SELECTのようなデータ定義ステートメントを同時に実行すると、サーバーが予期せず停止する可能性がありました。(バグ #35735937)
    • UPDATE HISTOGRAMは、全ての場合に期待どおりに動作しませんでした。
      UPDATE HISTOGRAMは、全ての場合に期待どおりに動作しませんでした。(バグ #35710404)
    • EXPLAIN ANALYZEでは、必ずしも予期した結果が得られるとは限りませんでした。(バグ #35710383)
    • サブクエリの解決中にエラーが発生しました。(バグ #35710373)
      参考: この問題は、バグ #35184353のリグレッションです。
    • 使用されているテーブル情報の更新が、テーブルが開かれた直後の次の実行の開始まで延期されるようになりました。全てのテーブルオブジェクトが適切な状態にあることがわかります。(バグ #35710213)
    • 一部のHAVINGクエリでは予期した結果が得られませんでした。(バグ #35710183)
    • 一部の再帰CTEは期待どおりに機能しませんでした。(バグ #35654240)
    • OVER (PARTITION ...)を使用する一部のクエリは、常に正常に実行されるわけではありませんでした。(バグ #35627798)
    • ROLLUPを使用した一部のサブクエリは、常に正しく処理されるとは限りませんでした。(バグ #35621842、バグ #35804794)
    • (バグ #35529968)
    • Windowsインストール MSIインターフェイスからCPACK_COMPONENT_GROUP_INFO_DISPLAY_NAME設定オプションを削除しました。INFO_BINおよびINFO_SRCファイルが常にインストールされるようになりました。(バグ #35529968)
    • ウィンドウ関数を使用する一部のクエリは、常に正しく処理されるとは限りませんでした。(バグ #35471471)
    • デバッグビルドでは、大文字と小文字が変更された列名によりサーバーが終了する可能性がありました。(バグ #35449266)
    • MySQL ServerおよびMySQL Clusterのパッケージには、INFO_SRCファイルの2つのコピーが含まれていました。(バグ #35400142)
    • プリペアドステートメント内のSELECTステートメントが、連続して実行されると予期せず異なる結果を返しました。(バグ #35340987、バグ #35846585、バグ #35846873)
      参考: この問題は、バグ #35060385のリグレッションです。
    • 一部のSELECT DISTINCTクエリは常に正しく処理されるとは限りませんでした。(バグ #33725447)
    • sql/field.ccのアサーションエラーを削除しました。(バグ #112503、バグ #35846221)
    • SELECT AVG(...) OVER (PARTITION BY ...)の形式を持つ一部のクエリは、常に正しく処理されるわけではありませんでした。(バグ #112460、バグ #35710179、バグ #35845413)
    • 公式のMySQL YumまたはSUSEリポジトリを使用してMySQLをアップグレードすると、常にMySQLサービスが有効になります。今後は、インストール後にのみサービスが有効になり、アップグレード中は既存の値が保持されます(編集されません)。(バグ #112382、バグ #35823558)
    • 条件内の列が置換される必要がある派生条件プッシュダウンを含むクエリの場合、置換アイテムがROLLUPでラップされている一方で、一致するアイテムがROLLUPでラップされていない場合、一致するアイテムが存在することがわかっている場合でも、一致するアイテムが見つかりませんでした。(バグ #111665、バグ #35498378、バグ #35570065、バグ #35826171)
      参考: この問題は、バグ #33349994のリグレッションです。
    • ストアドプロシージャ内のウィンドウ関数を使って結果に対して算術演算を実行すると、プロシージャが最初に実行された時は正しい結果が得られましたが、それ以降の全ての呼び出しでは間違った結果が返されました。(バグ #110983、バグ #35380604)
      参考: バグ #110847、バグ #35340987も参照してください。
    • MySQLは、libcのmuslバージョンを使用すると正しくビルドされませんでした。
      (バグ #110808、バグ #35330950)
    • 場合によっては、ビューからの選択により少量のメモリがリークすることがありました。(バグ #103133、バグ #32764586)

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


    MySQL Editions

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