Aurora Serverless MySQL(5.6) で日本語データを扱えるようにする
文字コードを変えよう
Aurora Serverless を作ってみたものの、
latin
という文字コード(character set)が標準で
日本語や🍺を扱えなかったので使えるようにする。
環境(2019/12/19)
- Aurora Serverless
- MySQL
- aurora 5.6
設定方法
パラメータグループを作成
RDS > パラメータグループ
画像はAurora Serverless むけの設定なので注意。
パラメータを設定
上部の「パラメータを編集」を押下し、以下のように設定していく
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 じゃないけどまあ問題なく使えてるから大丈夫なんでしょう。。
Author And Source
この問題について(Aurora Serverless MySQL(5.6) で日本語データを扱えるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/tokicat/items/beda4be4f6815e198c76著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .