2025年1月のリリースは、MySQLが新たに採用した「LTS / イノベーション」リリースモデルに基づいた、4回目のLTSリリース、および3回目のイノベーション・リリースとなります。詳細については、MySQL Releases: Innovation and LTS をご参照ください。

イノベーション・リリースのサイクルにおいては、四半期毎のMySQL 9.xのリリースには、新機能、非推奨化機能および削除機能、バグ修正が含まれます。

9.xのリリースには、Shell、Router、各種Connectorsおよびクライアントツールも含まれています。

MySQLのDBA、開発者、およびユーザーは、9.x イノベーション、8.4 LTS、そして8.0リリースを含むすべてのサーバーをサポートする、最新の9.x GA版Connectorsおよびクライアントへの移行を検討してください。

MySQLは引き続き、3か月ごとのリリースサイクルを維持します。

2025年4月頃に予定されている内容

  • バグおよびセキュリティ修正のみのリリース
    • MySQL 8.4.5 LTS
    • MySQL 8.0.42
  • イノベーション・リリース
    • MySQL 9.3.0 Innovation

MySQL Server 9.2.0 イノベーション・リリース GA:

MySQL Server 8.4.4 LTSリリース GA:

MySQL Server 8.0.41 リリース GA:

アップグレードガイド

  • MySQL Server 8.0.x をご利用のお客様は、最新の8.4.x LTS (現在8.4.4) への移行が推奨されています。
  • 最新の追加機能や機能強化に興味があるお客様は、MySQL 9.2 イノベーション・リリースへのアップグレードをご検討ください。

MySQL Server 9.2 の主なハイライト

MySQL Community Edition: セキュリティ

  • 新しい動的権限 – CREATE_SPATIAL_REFERENCE_SYSTEM
    • この権限により、以下のコマンドを用いて空間参照系 (SRS) を作成または変更できます。
      • CREATE SPATIAL REFERENCE SYSTEM
      • CREATE OR REPLACE SPATIAL REFERENCE SYSTEM
      • DROP SPATIAL REFERENCE SYSTEM.
  • これまではSRSを変更するには SUPER 権限が必要でしたが、今回の新しい動的権限によって、必要な権限の範囲が限定されます。

MySQL Community Edition: OpenSSL パフォーマンス

  • MySQL Serverのパフォーマンス向上
  • OpenSSL 3.x 固有のAPIを使用するように変更
    • OpenSSL 3.xの下位互換用API(レガシーAPI)を使う場合よりも、新しいAPIを直接利用する方が高いパフォーマンスを発揮します。

MySQL Community Edition: コネクション制御

  • コネクション制御をプラグインからコンポーネントとして移行
  • これまでの「connection control plugin」は非推奨となり、将来的に削除される予定です。

MySQL Community Edition: Router – メタデータキャッシュ接続ハンドリングの強化

  • MySQL Router 9.2 より前のバージョンには、デフォルトTTLが0.5秒だったために、メタデータキャッシュ接続が頻繁に開閉されていました。このため、以下に挙げるような点が問題がとして生じていました。
    • サーバ負荷の増大:
      • 頻繁な接続試行により、サーバ側監査ログが大量のエントリであふれる
      • 大量の接続がTIME_WAIT状態になり、サーバリソースを消費
      • max_connections に達するとクライアント側ソケットが切断され、アプリケーションに影響
    • パフォーマンスの低下:
      • TLSハンドシェイクに伴うCPU負荷が頻繁な接続試行で増大
  • MySQL Router 9.2 以降での改善:
    • このような問題にフォーカスして改善し、MySQL Router 9.2 では以下のような顕著な改善が実現しました。
      • 永続的な接続: デフォルト設定では、メタデータキャッシュへの接続は可能な限りオープンのまま維持されるようになった
      • デフォルト設定: close_connection_after_refresh=0
      • リソース消費の削減: この永続的な接続により、サーバ負荷が大幅に軽減され、パフォーマンスやリソース効率が向上
  • 再接続動作 (オプション):
    • 旧来のようにリフレッシュごとに接続を閉じる動作が必要な場合は、close_connection_after_refresh=1 を設定することで以前のTTL動作に戻せる
    • ただし、サーバパフォーマンスや安定性が悪化する可能性があるため、慎重に使用すべき

MySQL Community Edition: Router

  • UnixソケットによるRouterへの接続のサポート
  • Routerの設定ファイルでの記述例:
    • local:/tmp/mysql.sock
  • ローカルTCP/IP接続を使用する場合に比べ、パフォーマンスが向上

MySQL Community Edition: Shell – SQL互換性の強化

MySQL Shellによるアップグレード操作時に、ターゲットサーバのSQL言語バージョンを活用

改善されたポイント:

  • 改良された互換性チェック:
    • ルーチン、トリガー、イベント等で、ターゲットバージョンで変更・削除された可能性のあるSQL構文を検出
  • アップグレード精度の向上:
    • ターゲット環境のSQL方言を考慮した、より正確で信頼性の高いアップグレード評価が可能

MySQL Enterprise Edition: グループレプリケーション

レプリカの遅延やリソース逼迫に起因する問題を自動で特定・緩和する仕組みが新しく追加されました。これにより、グループ内の以下のような問題からの保護が強化されます。

  • リソース枯渇の防止:
    • リソース不足が発生しているメンバーを自動的にグループから除外し、グループ全体への影響を回避
  • 遅延サーバの検知と排除:
    • セカンダリサーバの適用パフォーマンス(遅延や過度のスワップなど)を継続的に監視
    • 問題のあるサーバを除外してHAを維持
  • リソース使用量の閾値:
    • CPUやメモリなどの重要なリソース使用量の閾値を設定
    • 定義された条件を超えると、自動除外やアラートなどの適切なアクションを実行
  • フォールトトレランス:
    • 問題のあるメンバーがいても動作を継続
    • サービス停止を最小限に抑制
  • 再起動メンバーの隔離期間:
    • 再起動したメンバーには一定の隔離期間を設置
    • 除外が発生する前に、十分な時間を設け同期を完了させる
  • グレースフルな障害処理の完了:
    • 障害発生時のサービスへの影響を抑えつつ、問題のあるメンバーを自動で検出・除外
    • 既存の「自動リジョイン機構」と組み合わせることで自己修復を実現:
      • 自動再参加:
      • 除外されたメンバーが問題を解消後に自動で再参加
      • グループ全体として正常な状態へ復帰
    • 自己プロビジョニングと再参加:
      • 除外されたメンバーが自動で自己プロビジョニングし、再びグループに合流
      • ダウンタイムを最小化し、グループ全体の可用性を維持

MySQL Server Enterprise Edition: オプションとオプション使用状況トラッカー

MySQL Server Enterprise Edition: JavaScript強化

  • サードパーティ製ライブラリのサポート:
    • サードパーティ製のJavaScriptライブラリをデータベース内に直接格納できる新機能
    • ストアドルーチンで外部ライブラリを利用する際の手間を軽減
    • CREATE LIBRARYステートメントでライブラリを定義可能
    • 以下の例では、「buzz」という関数をJavaScriptで定義したライブラリを作成し、それを「foo」から呼び出しています
CREATE LIBRARY bar LANGUAGE JAVASCRIPT
AS $$
  export function buzz(x) {
    return x;
  }
$$;
 
CREATE FUNCTION foo(arg INT) RETURNS INT LANGUAGE JAVASCRIPT
USING (bar)
AS $$
  return bar.buzz(arg);
$$;
 
mysql> SELECT foo(42);
+---------+
| foo(42) |
+---------+
|      42 |
+---------+
1 row in set (0.06 sec)

  • データ型サポートの強化:
    • ENUM および SET データ型のサポートが、JavaScriptストアドプログラムおよびストアド関数で追加されました
    • データベースデータとのやり取りが、より柔軟かつ互換性の高い形で行えるようになります

MySQL Connectors C++, ODBC: WebAuthn認証デバイスの選択オプション

  • MySQL Server 9.1以降でサポートされている WebAuthn 仕様によって、Windows Helloを利用した認証が可能になっています
  • Windows環境で複数の認証デバイス(例: 指紋認証やYubiKey)が使用可能な場合、今回の拡張により、ユーザーは使用したいWebAuthn認証デバイスを明示的に選択できるようになりました

バージョン9.2のMySQLクライアント、ツール、Connectorsもリリースされました

  • サーバのバージョンにかかわらず、常に最新バージョンのMySQLクライアント、ツール、Connectorsをお使いください
  • これらのバージョン9.2のクライアント、ツール、Connectorsは、MySQL Server 8.0、8.4 LTS、そして9.2 Innovationをサポートしています

いつもMySQLをお使いいただきありがとうございます。