本記事は MySQL July 2024 GA Releases Now Available の翻訳版です。
InnovationリリースとLTSリリース
既に周知の通り、MySQLは新しくMySQL InnovationリリースおよびLong-Term Supported(LTS)リリースへの移行を発表し、2年ごとにメジャーLTSリリースを行います。詳しくは下記の公式Webマニュアル、ブログ記事をご覧ください。
MySQL 8.4.xはLTSシリーズなので、次のメジャー・バージョンは9.x Innovationシリーズです。Innovationバージョンのサイクル中は、MySQL 9.xが四半期毎にリリースされます。Innovationバージョンには新機能の追加、機能の非推奨および削除、バグ修正が含まれます。
9.xリリースには、MySQL Shell、MySQL Router、MySQL ConnectorおよびMySQL Clientも含まれます。またMySQL Workbenchの後継であるMySQL Shell for VS Codeのリリースもあります。
MySQLをお使いのデータベース管理者、開発者、ユーザーの皆様にはMySQL Serverのバージョンに関わらず、最新のMySQL Connector、MySQL Clinet、およびその他MySQLツールのご使用をお願いしております。2024年7月現在最新のMySQL 9.0がサポートするMySQL Serverは、MySQL Server 8.0、MySQL Server 8.4 LTS、およびMySQL Server 9.0です。
リリース・サイクルとバージョン・アップについて
MySQL は新しいバージョンの一般提供 (GA) を四半期毎に行います。2024年7月に一般提供となったバージョンのリリース・ノートと次回リリース予定のバージョンは下記のとおりです。
リリース・ノート(2024年7月 一般提供済み)
- バグ修正、セキュリティ修正のみ
- 新機能追加、バグ修正、セキュリティ修正 (Innovation リリース)
次回リリース予定(2024年10月)
- バグ修正、セキュリティ修正のみ
- MySQL 8.4.2 LTS
- MySQL 8.0.39
- 新機能追加、バグ修正、セキュリティ修正 (Innovation リリース)
- MySQL 9.1.0 Innovation
バージョン・アップのご案内
InnovationリリースであるMySQL 8.1、8.2、8.3は既にサポートを終了しています。現在もお使いの方は、MySQL 8.4 LTSへのバージョン・アップをお願いします。
MySQL 8.0のPremier Supportは2025年4月までとなっており、既にバグ修正およびセキュリティ修正のみの提供になっています。現在もお使いの方はPremier Support終了前に、長期サポートによる安定稼働を主眼においたMySQL 8.4 LTSへのバージョン・アップをご検討ください。
MySQLの最新機能をいち早く導入したい方には、2024年7月現在最新のInnovationシリーズであるMySQL 9.0へのアップグレードをおすすめしております。
MySQL Server 9.0の注目ポイント
MySQL 9.0 Innovationシリーズ開始
当該リリース以降で最新機能を実装していく土台となる、初期リリースです。
新機能: Vectorデータ型
CREATE文とALTER文でサポート開始します。
新機能: JavaScriptストアド・プログラム (MySQL Enterprise Edition)
- JavaScriptベースのストアド・プログラムと関数のサポート
- SQLによるJavaScriptストアド・プログラムの呼び出し
- JavaScriptストアド・プログラムによるSQL呼び出し
JavaScriptストアド・プログラムついて詳しくは公式Webマニュアル、ブログ、Youtube動画をご覧ください。
SHA-1ベースのnative_passwordの削除
2005年にハッシュ関数SHA-1の脆弱性が確認されました。そこでMySQLは、2015年にsha256_passwordをリリースしました。この実装は意図的にコストを高くしており、複雑なハッシュ計算を時間を掛けて実行し、ランダムな出力を可能にします。これにより、アカウント認証の総当り攻撃を防ぐことができます。
2017年には、caching_sha2をリリースしました。caching_sha2_passwordは安全性の高いSHA-2を利用しサーバー側でキャッシュを使用することで、認証の性能を向上します。
SHA-1に基づいたnative_passwordの削除に伴い、MySQL 9.0にアップグレードする前にMySQL 8.0および8.4で作成したユーザの認証方法を、mysql_native_passwordからcaching_sha2_passwordに変更してください。詳しくは公式Webマニュアルをご覧ください。下記は基本構文と実行例です。
ALTER USER 'user'@'host' IDENTIFIED WITH caching_sha2_password;
下の実行例では、ユーザ認証方法の変更に加えパスワードの有効期限と、許可するログイン失敗回数およびロック時間も設定しています。
mysql> SELECT user, plugin, password_lifetime, user_attributes FROM mysql.user WHERE USER=’July2024GA’;
+————+———————–+——————-+—————–+
| user | plugin | password_lifetime | user_attributes |
+————+———————–+——————-+—————–+
| July2024GA | mysql_native_password | NULL | NULL |
+————+———————–+——————-+—————–+
1 row in set (0.00 sec)
mysql> ALTER USER ‘July2024GA’@’localhost’
-> IDENTIFIED WITH caching_sha2_password BY ‘XXXXXXXXXX’
-> PASSWORD EXPIRE INTERVAL 180 DAY
-> FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT user, plugin, password_lifetime, user_attributes FROM mysql.user WHERE USER=’July2024GA’;
+————+———————–+——————-+———————————————————————————-+
| user | plugin | password_lifetime | user_attributes |
+————+———————–+——————-+———————————————————————————-+
| July2024GA | caching_sha2_password | 180 | {“Password_locking”: {“failed_login_attempts”: 3, “password_lock_time_days”: 2}} |
+————+———————–+——————-+———————————————————————————-+
1 row in set (0.00 sec)
新バージョンのライブラリおよびコンパイラに移行
- Linux 8、9プラットフォーム向けに、GCC13によるコンパイルに更新
- Boost ライブラリを 1.85 に更新
アップグレード・パス
MySQL 9.0 Innovationにアップグレードすることが可能なのは、MySQL 8.0.34以降のMySQL 8.0、MySQL 8.3までのInnovationリリース、MySQL 8.4 LTSです。その他のアップグレード・パスについては公式Webマニュアルをご覧ください。
MySQL 9.0リリース
MySQL Client、MySQL Connectorをはじめとするその他のMySQLツールも、バージョン9.0をリリースします。MySQL Serverのバージョンに関わらず、最新のMySQL Client, MySQL Connector, MySQLツールをご使用ください。
MySQL Client 9.0、MySQL Connector 9.0、その他バージョン9.0のMySQLツールはMySQL Server 8.0、MySQL Server 8.4 LTS、およびMySQL Server 9.0をサポートします。
今後もMySQLをご愛顧賜りますようお願い申し上げます。
