
MySQL8を採用して運用を始めたら、dumpしてlocal環境でリストアする際に文字コードの記述を修正しないとリストアができまない。
CREATE TABLE `access_token` ( `id` int NOT NULL AUTO_INCREMENT, `uuid` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, `user_id` int unsigned NOT NULL COMMENT 'The ID of the target entity.', `value` varchar(128) DEFAULT NULL, `expire` int DEFAULT NULL, `entity_type` varchar(255) DEFAULT NULL, `entity_id` int DEFAULT NULL, `created` int DEFAULT NULL, `changed` int DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `access_token_field__uuid__value` (`uuid`), KEY `access_token_field__user_id__target_id` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='The base table for access_token entities.' AUTO_INCREMENT=2;
上記のようにテーブルに記載してある「COLLATE=utf8mb4_0900_ai_ci」の箇所を「COLLATE=utf8mb4_general_ci」に一括で置き換える必要がある。
mysql> CREATE DATABASE jimin_honban DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Query OK, 1 row affected (0.01 sec)
ここからリストアしてdumpするとCOLLATE=utf8mb4_general_ciで出力される。