본문 바로가기
카테고리 없음

EUC-KR → UTF-8로 데이터베이스 문자셋 변경하는 방법

by 오디와이 2025. 5. 1.

웹 개발을 하다 보면 과거 EUC-KR로 구축된 사이트를 리뉴얼하거나, 기존 데이터를 UTF-8 환경으로 옮겨야 할 때가 있습니다. 이때 데이터가 깨지지 않도록 데이터베이스와 테이블, 컬럼의 문자셋을 정확하게 변경하는 방법을 정리해봤습니다.

데이터베이스 문자셋 확인 방법

SHOW CREATE DATABASE 데이터베이스명;

이 명령어를 입력하면 현재 DB의 문자셋과 정렬 방식(collation)을 확인할 수 있습니다.

데이터베이스 문자셋 변경 방법

ALTER DATABASE 데이터베이스명 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

utf8이 아닌 utf8mb4를 권장합니다. 이 방식은 이모지와 다양한 유니코드 문자를 더 폭넓게 지원합니다.

테이블 문자셋 변경 방법

ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

데이터베이스 변경만으로는 기존 테이블 문자셋이 변하지 않으므로, 각 테이블마다 위 명령어로 변경해줘야 합니다.

컬럼 문자셋 변경 방법

ALTER TABLE 테이블명 CHANGE 컬럼명 컬럼명 VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

특정 컬럼만 별도로 문자셋을 바꿔야 할 때 사용하는 방법입니다.

phpMyAdmin에서 변경하는 법

  1. phpMyAdmin 접속
  2. 데이터베이스 선택 → '작업' 탭 클릭
  3. 문자셋 및 정렬방식 수정 후 저장
  4. 테이블도 각각 들어가서 '구조' → '운영' 탭에서 문자셋 변경 가능

데이터 백업/복원 시 주의사항

mysqldump 명령어로 백업할 때 --default-character-set=utf8mb4 옵션을 꼭 추가하세요. 그래야 복원 시 깨짐 현상을 방지할 수 있습니다.

마무리

이렇게 하면 과거 EUC-KR 환경의 데이터베이스를 깨짐 없이 UTF-8 환경으로 안전하게 옮길 수 있습니다. 실무에서 자주 사용하는 내용이니 꼭 정리해 두세요.

다음 글 예고 📌

👉 PHP에서 한글 데이터 입출력 시 깨짐 방지 설정법 도 준비 중입니다!