MariaDB 설치 후 기본 캐릭터셋을 변경하지 않고 그대로 데이터베이스와 테이블을 만들면 기본 캐릭터셋인 latin1~로 생성되는데 이건 쓸 수 없기 때문에 변경이 필요하다.
가능하다면 데이터베이스 전체를 날려버리고 마리아DB 서버 캐릭터셋을 UTF8로 변경한 뒤 데이터베이스 생성부터 다시하는 걸 추천하는데 굳이 날리지는 못하겠다면 데이터베이스와 그 안에 만든 모든 테이블의 캐릭터셋을 바꿔줘야 한다.
데이터베이스 캐릭터셋 변경
기본 캐릭터셋으로 데이터베이스를 생성하면 여기 보이는 testDB처럼 latin1_swedish_ci 로 생성된다.
그 안에 생성한 테이블에 VARCHAR 데이터 타입을 가진 컬럼도 latin1_swedish_ci 인 걸 볼 수 있다.
이걸 UTF8로 바꿔주자.
1. 데이터베이스 캐릭터셋 변경
ALTER DATABASE testDB
CHARACTER SET UTF8MB4
COLLATE utf8mb4_general_ci;
변경이 잘 됐는지 확인한다.
2. 테이블 캐릭터셋 변경
놓치지 말아야 하는 건 데이터베이스 캐릭터셋 바꿨다고 그 안에 있는 테이블도 바뀌는 게 아니라는 거다.
테이블도 바꿔줘야 한다. 테이블의 경우 특히 귀찮은 게 모든 테이블을 하나하나 다 바꿔줘야 된다.
ALTER TABLE Employees CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE OrderDetails CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Orders CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Products CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE Users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
이후 변경이 잘 됐는지 확인한다.
변경 후에는 꼭 서버 캐릭터셋 기본값도 UTF8로 바꿔줘서 앞으로 생성하는 데이터베이스에 대해서는 UTF8이 적용될 수 있도록 한다.