Amazon RDS for MariaDB 12.3 が正式リリース(GA)されたので試してみた

Amazon RDS for MariaDB 12.3 が正式リリース(GA)されたので試してみた

MariaDB 12.3 は長期サポート(LTS)版です。Amazon RDS で新規作成した 12.3.2 環境と、11.8.8 から 12.3.2 へインプレースアップグレードした環境で、予約語による既存 SQL への影響と、パラメータグループで設定できる値の差を確認しました。
2026.08.13

はじめに

2026年8月11日、AWS What's New で Amazon RDS for MariaDB 12.3.2 の発表がありました。

https://aws.amazon.com/about-aws/whats-new/2026/08/amazon-rds-mariadb-1232-available/

RDS for MariaDB のメジャーバージョンごとのリリース日とサポート終了時期を、MariaDB のバージョン管理ドキュメントから確認します。

MariaDB メジャーバージョン コミュニティリリース日 RDS リリース日 コミュニティEOL RDS 標準サポート終了
12.3 2026年5月28日 2026年8月7日 2029年6月 2029年6月
11.8 2025年8月6日 2025年8月25日 2028年6月 2028年6月
11.4 2024年8月8日 2024年10月15日 2029年5月 2029年5月
10.11 2023年2月16日 2023年8月21日 2028年2月16日 2028年2月
10.6 2021年7月6日 2022年2月3日 2026年7月6日 2026年11月
10.5 2020年6月24日 2021年1月21日 2025年6月24日 2026年8月

10.5 以前は、同ドキュメントで非推奨バージョンとして案内されています。

パッチバージョン単位では、同ドキュメントの Supported MariaDB minor versions on Amazon RDS に、12.3.2 の RDS 標準サポート終了が2027年8月と記載されています。

プレビュー期間中は rds-preview.us-east-2.amazonaws.com でのみ利用できましたが、GA 後は通常リージョンで利用できます。describe-orderable-db-instance-options では、東京リージョン(ap-northeast-1)でも 12.3.2 が DB インスタンス作成時に選択可能なエンジンバージョンとして返りました。

プレビュー環境での検証は、以下の先行記事にまとめています。

https://dev.classmethod.jp/articles/rds-preview-mariadb-12-3-new-features/

本記事では、12.3.2 を新規作成した場合と、11.8.8 から 12.3.2 へインプレースアップグレードした場合について、列名の書き方とパラメータグループの設定値がどう変わるかを確認します。

12.3 アップグレード時の注意点

11.8 から 12.3 へアップグレードする際の注意点は、MariaDB と AWS の公式ドキュメントに挙げられています。

  • 予約語が追加され、引用符なしでは識別子に使えなくなりました。本記事で影響を確認したのは TO_DATECONVERSION です(Upgrading from MariaDB 11.8 to MariaDB 12.3
  • innodb_snapshot_isolation の既定値が ON になりました。トランザクションの分離レベルに依存するアプリケーションはテストが必要です(MariaDB Foundation の告知
  • big_tables / storage_engine / large_page_size が削除されました(前掲のアップグレードガイド)
  • レプリカでは master_use_gtid の設定が引き継がれず、DEFAULT にリセットされます。12.3.3 で修正されています(同ガイド)
  • メジャーアップグレードは完了後に前のバージョンへ戻せません。事前にスナップショットを取得し、スナップショットからリストアしたインスタンスで先に試す方法が案内されています(AWS ドキュメント

このうち予約語と、パラメータグループで設定できる値の変化について、実際に試した結果を以降に示します。

検証内容

検証環境

検証は us-west-2 で、db.t4g.micro の DB インスタンス2台を使いました。1台は 12.3.2 を新規作成し、もう1台は 11.8.8 を作成してから 12.3.2 へインプレースアップグレードしています。EC2 から Systems Manager Run Command 経由で接続し、RDS CA バンドルを使用した TLS 接続を行いました。

予約語の確認

新規作成したインスタンスで、エンジンバージョンを確認しました。

SELECT VERSION(), @@version_comment;
-- 12.3.2-MariaDB | managed by https://aws.amazon.com/rds/

to_dateconversion を引用符なしの列名として指定した CREATE TABLE は、いずれも構文エラーになりました。

CREATE TABLE gatest.t_to_date (id INT PRIMARY KEY, to_date DATE)
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'to_date DATE)' at line 1
CREATE TABLE gatest.t_conversion (id INT PRIMARY KEY, conversion VARCHAR(16))
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'conversion VARCHAR(16))' at line 1

バッククォートで囲めば、同じ列名でテーブルを作成できました。

TO_DATE は関数としては引き続き利用できました。

SELECT TO_DATE('2026-08-12', 'YYYY-MM-DD');
-- 2026-08-12 00:00:00

アップグレード経路

RDS では 12.0 / 12.1 / 12.2 が提供されていないため、11.8 の次のメジャーバージョンは 12.3 です。describe-db-engine-versionsValidUpgradeTarget を見ると、11.8.8 / 11.4.12 / 10.11.18 のいずれからも 12.3.2 が返り、インプレースアップグレードの対象であることが確認できました。

Major version upgrades for RDS for MariaDB にも、サポートされる経路として Any MariaDB version to MariaDB 12.3 と記載されています。

アップグレードの準備と実行

11.8.8 では、to_dateconversion を引用符なしで列名にしたテーブルを作成できました。引用符なしで列名を指定した SELECT でも、挿入済みの1行を取得できました。

CREATE TABLE upgtest.reserved_word_test (
  id INT PRIMARY KEY, to_date DATE, conversion VARCHAR(16)
);
SELECT id, to_date FROM upgtest.reserved_word_test;
-- 1 | 2026-08-12

このインスタンスに対して、modify-db-instance でエンジンバージョンに 12.3.2 を指定し、インプレースアップグレードを実行しました。カスタムパラメータグループを使っている場合は、12.3 ファミリーのパラメータグループを用意して差し替える必要があります(出典:前掲の Major version upgrades for RDS for MariaDB)。

プリアップグレードチェックでは予約語の非互換を含めて警告は出ず、アップグレードが完了して 12.3.2 になりました。

アップグレード後の変化

アップグレード後の VERSION()12.3.2-MariaDB-log でした。既存テーブルの1行は保持されていました。

データは保持されている一方で、既存の to_date 列を引用符なしで参照すると、構文エラーになりました。

SELECT id, to_date FROM upgtest.reserved_word_test
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FROM upgtest.reserved_word_test' at line 1

conversion 列を引用符なしで参照した場合も、同じ ERROR 1064 になりました。to_dateconversion のどちらも、バッククォートで囲めば参照できました。

一方、SHOW CREATE TABLE の結果は、アップグレードの前後どちらでも列名がバッククォート付きの識別子として返りました。

CREATE TABLE `reserved_word_test` (
  ...
  `to_date` date DEFAULT NULL,
  `conversion` varchar(16) DEFAULT NULL,
  ...
)

read_only は、DB 上の表示値と、パラメータグループで設定できる値の両方が変わっていました。SELECT @@global.read_only の結果は、11.8.8 では 0、12.3.2 では OFF でした。

パラメータグループで設定できる値も、ファミリー間で異なります。12.3 ファミリーでは read_onlyNO_LOCK を設定できましたが、11.8 ファミリーでは拒否されました。一方、group_concat_max_len では、11.8 ファミリーで受け付けられた 4294967296 が、12.3 ファミリーでは範囲外として拒否されました。

パラメータ 11.8 ファミリー 12.3 ファミリー
read_only 0 / 1 / {TrueIfReplica} ON / OFF / NO_LOCK / NO_LOCK_NO_ADMIN / {TrueIfReplica}
group_concat_max_len 4〜18446744073709547520 4〜1073741824

11.8 ファミリーの read_onlyNO_LOCK を指定した場合は、次のエラーになりました。

An error occurred (InvalidParameterValue) when calling the ModifyDBParameterGroup operation: Invalid boolean value: NO_LOCK

12.3 ファミリーの group_concat_max_len に指定した 4294967296 は、範囲外として弾かれました。

An error occurred (InvalidParameterValue) when calling the ModifyDBParameterGroup operation: Value: 4294967296 is outside of range: 4-1073741824 for parameter: group_concat_max_len

まとめ

新規に RDS for MariaDB を採用する場合は、LTS である MariaDB 12.3 を第一候補として検討できます。

一方、既存環境をインプレースアップグレードする場合は、12.3 で予約語やパラメータグループの設定による互換性の問題が生じる可能性があります。スナップショットからリストアした検証用 DB で実際のワークロードを再現し、事前に確認することをおすすめします。

すでに延長サポートを利用している環境や、標準サポートの終了が近い環境では、12.3 へのメジャーアップグレードが難しいこともあります。その場合は、11.4 や 10.11 もアップグレード先の候補とし、サポート終了を見据えて計画的なアップグレードをご検討ください。

参考リンク

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事