監査ログ関連
- audit_log_encryption_password_get(keyring ID)が呼び出された場合、サーバーが予期せず終了する可能性がありました。(Bug #33296125)
コンパイル関連
- MySQLで使用されるlibfido2のバージョンが1.17.0にアップグレードされました。(Bug #39478664)
非推奨と削除関連
- 以下のレプリケーションシステム変数は、このリリースで非推奨となり、今後のリリースで削除される予定です:
- group_replication_communication_stack
- group_replication_ip_allowlist
(WL #17300)
InnoDB関連
- InnoDB: バージョン管理されていない ROW_FORMAT=REDUNDANTの行において、row_upd_rec_in_place()で発生していたデバッグアサーションの問題を修正しました。(Bug #39165747)
- InnoDB: バッファプールのサイズ変更中、innodb_adaptive_hash_index=ONであっても、mysqld-auto.cnf内でAdaptive Hash Indexが無効化される可能性があります。(Bug #39157211)
- InnoDB: 特定の状況下では、レコードを削除する際に、Bツリーのページを統合し、その親ページを更新する必要が生じることがあります。InnoDBがインデックスレコードのサイズを過小評価し、安全ではない順序でページラッチを取得して、同時実行されるBツリー検索との間でデッドロックが発生する可能性がありました。
InnoDBは現在、インデックス化されたプレフィックスフィールドや空間GEOMETRYインデックスを含め、最大レコードサイズをより正確に計算するようになっています。これにより、必要なラッチをより早く取得し、デッドロックを回避できるようになります。その結果、InnoDBの規定の制限を超える一部のCREATE TABLEおよびALTER TABLEステートメントは正しく拒否されるようになりました。(Bug #39129182) - InnoDB: テーブルのメンテナンスおよびクリーンアップに関連する問題を修正しました。(Bug #39091376)
- InnoDB: 以前のInnoDBのデッドロックの修正により、Bツリー操作における行サイズの推定精度が向上しましたが、同時にCREATE TABLEやALTER TABLEにおける検証も厳格化されました。その結果、以前のMySQL LTSリリースでは受け入れられていた一部のテーブル定義が予期せず拒否されたり、警告が生成されたりして、既存のアプリケーションに支障をきたしました。
このリリースでは、B-treeのデッドロックを防ぐために正確な見積もりが必要な箇所ではその見積もりを維持しつつ、大部分のDDL操作については従来の検証動作が保持されています。ALTER TABLE ... ALGORITHM=INSTANTは、大きなデフォルト値を安全に処理するために、引き続きより厳密な計算を使用します。
(Bug #120323, Bug #39249507)
参照: Bug #39129182も参照してください。 - InnoDB: 特定の状況下では、既存のテーブルにAUTO_INCREMENTカラムを追加する時に、そのテーブル内の一部のレコードがスキップされ、AUTO_INCREMENTカラムの値が不正確になる可能性がありました。
(Bug #115136, Bug #37105825)
JSON関連
- JSON Schema検証に関連する問題を修正しました。(Bug #39489024)
MySQLプログラム関連
- mysql_tzinfo_to_sqlが不要な警告を生成しました。例:
Warning: Unable to load '/usr/share/zoneinfo//iso3166.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//leap-seconds.list' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//leapseconds' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//tzdata.zi' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone.tab' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo//zone1970.tab' as time zone. Skipping it.このリリースでは、それらの警告は抑制されるようになりました。
(Bug #115021, Bug #36624161)
オプティマイザー関連
- subquery_to_derivedが有効な場合の共通テーブル式に関連する問題を修正しました。(Bug #39179197)
- ExtractValue()における問題を修正しました。(Bug #39138426)
- 動的スキャン実行に関連する問題を修正しました。
(Bug #38657550) - 以前のバージョンでの修正により、スカラーサブクエリとその外側のクエリが同じCTEを参照した場合、WHEREの等価条件が既存の行と一致しなくなるという問題が発生しました。
この修正は、派生テーブルの一時キーを所有していないクエリブロックによって、それらのキーがクリーンアップされるのを防ぎます。これにより、外側クエリの最適化中に正しいキーメタデータが保持され、結果の正しい照合が保証されます。(Bug #120403, Bug #39321676)
参照:この問題は、Bug #35912840のリグレッションです。 - ANDやIS NULLを含むWHERE条件がプッシュダウンされるUNIONおよびUNION ALLクエリにおいて、誤った行が返される可能性がありました。
条件プッシュダウンは、集合演算のブランチにおいてWHERE述語のセマンティクスを保持するようになりました。(Bug #119780, Bug #38888307) - ネストされたマージ済みのビューや外部結合を含むクエリにおいて、定数式を含むビューの列が外部結合のNULL補完の前に評価されると、誤った結果が返される可能性がありました。
オプティマイザは、マージされたビューの列について、内部テーブルの正しい依存関係を保持します。これにより、外部結合式や関連するWHERE条件が適切な段階で評価されることが保証されます。(Bug #119499, Bug #38729126)
参照:これは、Bug #35854686のリグレッションです。 - ORDER BY、低いLIMIT、および複合インデックスに対する逆範囲スキャンを含むクエリは、オプティマイザがソート操作を早期に削除した場合、誤った結果を返す可能性がありました。
このリリース以降、オプティマイザは逆インデックス範囲スキャンを選択する前に、順序付けに必要なすべての主要要素を考慮するようになりました。
(Bug #119198, Bug #38564020) - マテリアライズド一時テーブルに対してCONSTアクセスを使用するクエリは、インメモリ一時テーブルがオンディスクテーブルに変換された後に、誤った結果を返す可能性がありました。
このリリース以降、変換後に一時テーブルの読み取り状態がリセットされるようになり、期待される行が引き続きアクセス可能であることが保証されます。
(Bug #116741, Bug #37308710) - OR条件を含む一部のLEFT JOINクエリにおいて、EXPLAIN上では動的範囲アクセスと表示されていましたが、実行時には依然として内部テーブルのフルスキャンが行われていました。これは、オプティマイザが範囲アクセスの評価時に、適切な外部結合述語を認識しなかったために発生しました。
オプティマイザは動的範囲分析においてこれらの述語を考慮するようになったため、対象となるLEFT JOINクエリでは、内部テーブル全体を繰り返しスキャンする代わりに、外部の各行に対して再計画されたインデックス範囲スキャンを利用できるようになりました。
(Bug #113288, Bug #36061036) - GROUP BY ... WITH ROLLUPによって生成された派生テーブルの列に名前を割り当てるクエリでは、ウィンドウ関数がそれらの名前のいずれかで並べ替えを行うと、「Unknown column」エラーが報告されることがありました。
マテリアライズドロールアップフィールドが派生テーブルの列名を保持するようになったため、それらの参照が正しく解決されるようになりました。
(Bug #112112, Bug #35722845)
パッケージング関連
- このリリースをもって、MySQLはEnterprise Linux 7(および関連するglibc 2.17 generic)のサポートを終了しました。
パフォーマンススキーマ関連
- OBJECT_INSTANCE_BEGIN列に関連する問題を修正しました。(Bug #39449066)
レプリケーション関連
- レプリケーション: REPLICATION_APPLIERを使用したクライアントBINLOGの実行に関連する問題を修正しました。(Bug #39474825)
- レプリケーション: ハートビート処理に関連する問題を修正しました。(Bug #39377010)
- レプリケーション: log_replica_updatesが無効になっている書き込み可能レプリカにおいて、ローカルでのコミットとアプライヤーの処理が同時に行われると、競合状態が発生する可能性がありました。(Bug #39259437)
- レプリケーション: イベントのローテーション処理に関連する問題を修正しました。(Bug #39253359)
- レプリケーション:SOURCE_RETRY_COUNT=0が設定されたレプリケーションレシーバーは、SOURCE_RETRY_COUNT=0が無制限の再接続試行を許可しているにもかかわらず、その後の一時的な接続切断後に停止してしまう可能性がありました。この不整合により、追加の再接続エラーがログに記録されることなく、レシーバーが終了してしまう可能性がありました。
レプリケーションにおいて、再接続パス全体でSOURCE_RETRY_COUNT=0が一貫して無制限として扱われるようになりました。これにより、一時的な障害が繰り返された後でも、レシーバーが再試行を継続し、処理に追いつくことが可能になります。(Bug #39086875) - レプリケーション: エラー処理に関連する問題を修正しました。(Bug #38924622)
- レプリケーション: 明示的に空の認証データを指定したALTER USER文が、空の認証文字列を保持せずにバイナリログ用に書き換えられました。その結果、password_expiredエラーが発生しました。(Bug #38478657)
- レプリケーション: アプライヤユーザーを使用してレプリケーションチャネルが設定された場合、CREATEおよびDROPステートメントに対する権限チェックが失敗することがありました。これは、それらの権限がそのユーザーに対してデータベース固有のレベルでのみ付与されていた場合に発生しました。(Bug #37587555)
- レプリケーション: explicit_defaults_for_timestampが無効になっていた場合、NULL入力から格納済みの生成済みTIMESTAMP NOT NULL列を再計算する時に、行ベースのレプリカ適用やmysqlbinlogリプレイが停止する可能性がありました。以下のようなエラーが返されました:
Could not execute Write_rows event on table tablename; Column 'timestamp_col2' cannot be null, Error_code: 1048; handler error No Error!現在は、フィールドのデフォルトを使用して行が適用され、警告が発行されます。(Bug #120128, Bug #39182574)
- 検証に関連するいくつかの問題を修正しました。(Bug #39234600, Bug #38673268, Bug #38673285, Bug #38712932, Bug #39253416, Bug #39282368, Bug #39253383, Bug #39253491, Bug #39254867, Bug #39254885, Bug #39254896, Bug #39254914, Bug #39282350, Bug #39319907)
Xプラグイン関連
- X Pluginのいくつかの問題を修正しました。(Bug #39268692, Bug #39268863)
バグ修正
- Cloneプラグインにおけるいくつかの問題を修正しました。(Bug #39252316, Bug #39245805, Bug #39245844, Bug #39253040, Bug #39253103)
- 設定ファイルでinnodb_redo_log_encrypt=ONが定義されている場合、Oracle LinuxまたはRed Hat Linux 9でサーバーを起動できませんでした。(Bug #39181231)
- 接続属性の解析に関連する問題を修正しました。(Bug #39116965)
- クライアントメッセージにおいて、一部のポーランド語文字が疑問符(?)に置き換わりました。(Bug #38036138)
- テーブルおよびメタデータロックのクリーンアップ後のテーブルメンテナンスステートメントのエラー処理に関連する問題を修正しました。
(Bug #37797437) - 条件プッシュダウンに関与する式に、外部参照でもあるビュー参照が1つと、ローカル参照が1つ含まれていた場合、条件のクローン作成時に依存関係の一貫性チェックが失敗しました。
これについては、アイテムツリーを前順および後順で走査することによって解決します。前順で走査する時には、参照オブジェクトの基盤となる列に対して依存関係やコンテキスト情報を設定するために使用される、Item_refオブジェクトを設定します。後順の走査時には、このオブジェクトをクリアします。(Bug #36368181) - LOAD DATAの実行中、入力行の解析が行われている間、フィールドを一時的にNULL許容としてマークすることができます。ある行がNOT NULLカラムに対してNULLを提供した場合、LOAD DATAは、同じスレッドに戻る前に、テーブルのフィールドを一時的なNULL状態のままにしてしまう可能性がありました。その後、同じセッション内の後続のINSERTで、有効な非NULL値がNULLとして扱われ、ER_BAD_NULL_ERRORが返される可能性があります。
(Bug #118060, Bug #38939847) - 数千ものテーブル、ビュー、ルーチン、イベントを含む古い8.xリリースからアップグレードすると、サーバーによって消費されるメモリが継続的に増加し、大幅なメモリ使用量の急増を引き起こしました。
これらのシナリオにおいて、メモリ管理が改善されました。(Bug #117983, Bug #37832455, Bug #38031020) - 以下は、予約キーワードとして適切に定義されていませんでした:
- CUBE
- EXTERNAL
- QUALIFY
- TABLESAMPLE
以下は、非予約キーワードとして適切に定義されていませんでした:
- MANUAL
- PARALLEL
(Bug #114874, Bug #36584265)
- statement_digest()およびstatement_digest_text()におけるメモリリークを修正しました。(Bug #104115, Bug #33073320)
MySQL 8.4.11 リリースノート(MySQLウェブサイト):
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-11.html
MySQL Editions

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