발단
utf8은 가변 문자열을 3byte 단위로 저장하기 때문에 이모지를 저장하지 못한다. (이모지는 4byte 단위)
MySql 설정 파일에 다음 내용을 추가
$ vim /etc/mysql/my.cnf
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
MySql 재시작
$ service mysql restart
MySql 변경된 문자셋 확인
$ mysql -u root -p
>> SHOW GLOBAL VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
기존 데이터베이스 및 테이블의 문자셋 변경
>> ALTER DATABASE [데이터베이스명] DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
>> use [데이터베이스명]
>> ALTER TABLE [테이블명] DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
참고
이미 생성한 컬럼의 데이터정렬방식은 자동으로 변경되지 않아 직접 바꿔주었다.