RDSパラメータグループに関して

RDSパラメータグループとは

DB パラメータグループは、1 つ以上の DB インスタンスに適用されるエンジン設定値のコンテナとして機能します。つまりDSの設定を定義している物でこのパラメータを利用してDatabaseもグループ単位で管理することができます。

RDSパラメータグループの作成

東京リージョン:https://ap-northeast-1.console.aws.amazon.com/rds/home?region=ap-northeast-1#parameter-group-list:

パラメータグループファミリー

データベースの種類とバージョンを選択します。
RDSを作成する時の種類とバージョンと同じです。

グループ名

識別子は、文字で始まる必要があります。ASCII文字、数字、およびハイフンだけを使用する必要があります。ハイフンで終わることもハイフンを2つ連続して使用することもできません。

説明

ひらがな、カタカナ、漢字とかは使用できませんでした。

最初作成するパラメータグループはAWSが準備した基本パラメータが設定されています。
これを要件によって設定します。

RDSを作成する時、「追加設定」タブを拡張し、パラメータを設定することができます。

作成したRDSのパラメータグループの変更も可能ですがパラメータによって変更ができないパラメータもあるのでなるべくRDSの作成前に要件にあたうパラメータグループを作成してRDSを作った方がいいと思います。

Mysqlパラメータに関して

パラメータは修正不可能なものと修正可能なものがあります。修正可能なものでもRDSの再起動が必要なものとないものがあります。

AWSのポリシーの変更によって修正可能と書いてありますが、実際にできないものも存在しました。再三強調しますが、最初からデータベース要件に適合するパラメータグループを作成することにしましょう。

パラメータをいくつか見ていくことにしまします。

log_bin_trust_function_creators

基本設定は「0」になります。この設定はDatabaseにすべての権限を持っていてもSUPER権限がないとFunctionの作成ができません。場合によって違いますが開発環境とかDBAじゃないユーザーがFunctionを利用する為には「1」に設定する必要があります。

time_zone

データベースの時間帯を設定します。データベースが依存する時間帯なので意図しなかった結果が出る可能性があります。「Asia/Tokyo」に設定しましょう。

lower_case_table_names

Table名とColum名を大文字小文字区分をするかどうかの設定です。
これがMySql5.7の場合Windowsローカルに設置すると区分しないがデフォルトですが
RDSの方は区分することがデフォルトになります。
MySql5.7のRDSはパラメータを「1」にして修正できますがMySql8.0の場合違います。

MySql8.0の場合パラメータ修正可能と表示されていますが今の時点ではもう作成されたRDSはこのパラメータは修正不可能でした。なのでlower_case_table_namesを「1」にしたパラメータグループを準備して新しく作って直するしかなかったです。

Smallitのサービス