LoginSignup
3
1

More than 3 years have passed since last update.

Aurora Serverless MySQL(5.6) で日本語データを扱えるようにする

Last updated at Posted at 2019-12-19

文字コードを変えよう

Aurora Serverless を作ってみたものの、
latinという文字コード(character set)が標準で
日本語や🍺を扱えなかったので使えるようにする。

環境(2019/12/19)

  • Aurora Serverless
    • MySQL
    • aurora 5.6

設定方法

パラメータグループを作成

RDS > パラメータグループ
画像はAurora Serverless むけの設定なので注意。

パラメータを設定

上部の「パラメータを編集」を押下し、以下のように設定していく

image.png

character_set

ただの utf8 だとこういうふうになるので、utf8mb4 を選択。

character_set_client = utf8mb4
character_set_connection = utf8mb4
character_set_database = utf8mb4
character_set_results = utf8mb4
character_set_server = utf8mb4

index column size の拡張(optional)

utf8mb4 を設定して、 varchar(255) のキーカラムとか作ると
mysql Index column size too large. The maximum column size is 767 bytes.
と、こういう理由で怒られる。

そんな長いキーカラム作るなよって話もあるんだけど、
そういうの気にせずに typeorm から使いたいのでその制限を拡張する。

innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = 1

拡張したindex column sizeを使うために

CREATE文で、 ROW_FORMAT=DYNAMIC を指定する必要があった。

CREATE TABLE `retweet` (`tweetId` varchar(255) NOT NULL, ...) ENGINE=InnoDB ROW_FORMAT=DYNAMIC

パラメータグループを反映

対象のデータベースの「変更」から、作成したパラメータグループを選択して保存
しばらくすると反映されるはず

結果の確認

show variables like "character%" すると見える

なんか utf8mb4 じゃないけどまあ問題なく使えてるから大丈夫なんでしょう。。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1