はじめに ~MySQL 8.1.0 リリース情報
2023 年 7 月 18 日に、MySQL 8.1.0 がリリースされました。
MySQL 8.0 が GA となったのは 2018 年 4 月 19 日ですので、約 5 年ぶりの新バージョンのリリースということになります。
今回は、この新バージョンについての情報を簡単に報告させていただきます。
MySQL の新しいバージョン管理モデルについて
既に公式からもアナウンスがありますが、本リリースは Innovation Release という位置づけになっており、これからのバージョン管理モデルも一新されるとの発表がありました。
内容については、以下の公式記事や奥野さんの個人ブログの解説記事で詳細に説明されておりますので、まずは以下の内容をご確認いただければと思います。
- The Oracle MySQL Blog : Introducing MySQL Innovation and Long-Term Support (LTS) versions
- 漢(オトコ)のコンピュータ道 : MySQL 8.1登場!!Innovation ReleaseとLTSについて
主な変更点
本記事では要点のみをお伝えすることにしますが、新しいバージョン管理モデルや既存バージョンについては以下のような扱いとなりました。
-
Innovation Release は四半期に 1 回更新されて、サポートの期限は次の Innovation Release が公開されるまで
これまでは約四半期に 1 回マイナーバージョンがリリース(例:8.0.x) がリリースされてきましたが、今後は四半期に一度 Innovation Release (8.x) がリリースされます。
また、Innovation Release のサポートは次の Innovation Release が公開されるまでなので、主に機能検証などの用途に利用することが想定されているようです。 -
約 2 年程度で Long-Term Support (LTS) のバージョンがリリースされて、サポート期限は従来と同様
LTS バージョンについては、これまで通り 5 年間の Premier Support と 3 年間の Extended Support がサポートされます。
なお、LTS (例:8.4)が公開された後の Innovation Release は、バージョンの数字が 1 つ増加(9.x)していくため、これまでと比べてバージョンの進み方は速くなっていくようです。 -
既存の MySQL 8.0.x の EOL(Extended Support の終了)は 2026 年 4 月で変化しない
MySQL 8.0 の Premier Support は 2025 年 4 月まで延長されていますが、Extended Support は現時点で延長されていないため、2026 年 4 月で Sustaining Support に移行予定です。
現時点の公式の資料では MySQL 8.4 が LTS となっているので、1 年後の 2024 年には次の LTS が出る可能性があります。そのため、バージョンアップまでの期間は 1 年半ほど猶予がありそうです。
その他の更新内容や注意点
また、公式の記事を確認したところ、以下の点については考慮、あるいはこれまでと大きく変化する点になるかと思います。
-
特定のバージョン間で MySQL Server のダウングレードがサポートされるようになる
同一 LTS 内(例:LTS 8.4.20 → 8.4.11)であれば、インプレースでのダウングレードに対応するようです。また、MySQL 8.0.34 以降でもこの方法が提供される予定であるとのことです。
その他、1 つ前の LTS バージョンまで(例: LTS 9.7 → Innovation 9.5、LTS 9.7 → LTS 8.4)であれば、ロールバック用の MySQL 非同期レプリケーションもサポートされるようです。 -
非推奨となった機能の削除について、 Innovation Release を跨いでも 1 年間は実施されない
これまで、非推奨となった機能については、次のメジャーバージョンの公開時に削除される可能性がありました。
Innovation Release では四半期に一度バージョンアップがおこなわれますが、非推奨となった機能の削除については、少なくとも 1 年の間は削除されないとのことです。
MySQL 8.1.0 の新情報について
新しいバージョン管理モデルの発表が目を引きますが、続いて、MySQL 8.1.0 のリリース情報についても簡単に確認していきたいと思います。
なお、ここでは個人的に気になった点のみを記載しておりますので、アップグレードの詳細については以下の公式リファレンスをご確認ください。
インストールについて
さっそく新しいバージョンをインストールしてみました。なお、手元にあった検証環境は以下の通りです。
- CentOS 7.5
- MySQL Server 8.0.25
公式サイトから MySQL 8.1.0 の RPM パッケージをダウンロードしてインプレースアップグレードをおこなってみましたが、特にこれまでと変化した点はなく、問題なくアップグレードが成功しました。
なお、Red Hat Enterprise Linux 6 はサポートされなくなっているのでご注意ください。
新機能について
今のところ気になった新機能についてはありませんでしたが、以下のような修正がおこなわれています。
-
USER() 関数をカラムのデフォルト値に設定可能
CURRENT_USER()、SESSION_USER()、SYSTEM_USER()、USER() がテーブルの VARCHAR カラムおよび TEXT カラムのデフォルト値として指定出来るようになりました。
-
グループレプリケーションの動作改善
START/STOP GROUP_REPLICATION などのグループレプリケーションの操作系コマンドは内部的にシステムステータス変数の読み取り/書き込みロックを取得していましたが、キャッシュされた値をすぐに返しロックを取得しないようになりました。これによって、メンテナンスや障害時にグループレプリケーションが何故か停止できない、といった事態も減るのではないかと推測いたします。
非推奨となった機能
以下の機能については非推奨となりました。
-
mysqlpump – データベースバックアッププログラム
MySQL 5.7 から新しく、mysqldump の改良版として mysqlpump が実装されていました。このツールではダンプ取得時に並列実行が可能であったりと、mysqldump の拡張機能を持っていました。
しかしながら、依然として mysqldump が主流であったことや、MySQL 8.0 からは MySQL Shell による dump utilities が実装されたため、その役目を終えるようです。 -
binlog_format システム変数
バイナリログの出力フォーマットについて、MySQL 5.7 からデフォルト値は ROW になっていましたが、今後削除された後は ROW 形式で固定されて変更できなくなります。
-
mysql_native_password 認証プラグイン
MySQL 5.7 までのデフォルトの認証プラグインである mysql_native_password が非推奨となります。
これまでは MySQL 8.0 からはデフォルトの認証プラグインである caching_sha2_password から値を変更して後方互換性を維持するケースもありましたが、今後削除された後は caching_sha2_password に対応していないドライバーからは接続できなくなる可能性があります。
MySQL8.1.0新情報 まとめ
ここまで、MySQL 8.1.0 のバージョンに関する新情報について確認してきました。
MySQL 8.0 ではアップグレードするたびに大きな機能追加が入っていることもあり、マイナーアップグレードだからと気を抜くことができませんでしたが、これからは新機能は Innovation Release、LTS はバグ修正のみと分かれているので、見るべきポイントを絞ることが出来るのではないかと思います。
Innovation Release はサポート期間が短いですが、(MySQL8.0 も同じでしたが)新しいバージョンが出る度に色々な新機能が追加される可能性がありますので、今後もアップデート情報には注視していきたいですね。