Amazon RDS for MariaDB 12.3 が正式リリース(GA)されたので試してみた
はじめに
2026年8月11日、AWS What's New で Amazon RDS for MariaDB 12.3.2 の発表がありました。
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 インスタンス作成時に選択可能なエンジンバージョンとして返りました。
プレビュー環境での検証は、以下の先行記事にまとめています。
本記事では、12.3.2 を新規作成した場合と、11.8.8 から 12.3.2 へインプレースアップグレードした場合について、列名の書き方とパラメータグループの設定値がどう変わるかを確認します。
12.3 アップグレード時の注意点
11.8 から 12.3 へアップグレードする際の注意点は、MariaDB と AWS の公式ドキュメントに挙げられています。
- 予約語が追加され、引用符なしでは識別子に使えなくなりました。本記事で影響を確認したのは
TO_DATEとCONVERSIONです(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_date と conversion を引用符なしの列名として指定した 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-versions の ValidUpgradeTarget を見ると、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_date と conversion を引用符なしで列名にしたテーブルを作成できました。引用符なしで列名を指定した 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_date と conversion のどちらも、バッククォートで囲めば参照できました。
一方、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_only に NO_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_only に NO_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 もアップグレード先の候補とし、サポート終了を見据えて計画的なアップグレードをご検討ください。







