한줄공지
  • 등록된 공지내용이 없습니다.

MySQL 데이터베이스 및 테이블 Character 및 Collate 일괄 변경 방법

2023년 10월 11일
조회수 286
코멘트 0

목차

MySQL 데이터베이스와 테이블의 Character Set 및 Collation을 변경하는 작업은 다양한 이유로 필요할 수 있습니다. 예를 들어, 다국어 데이터를 다루는 웹 애플리케이션을 개발하고 있는 경우, 데이터의 언어 및 정렬 순서에 따라 Character Set 및 Collation을 설정해야 할 수 있습니다.

아래에서는 MySQL에서 데이터베이스와 테이블의 Character Set 및 Collation을 일괄 변경하는 단계를 안내합니다.

 

단계 1: 데이터베이스 및 테이블 백업

데이터의 손실을 방지하기 위해 변경 전에 모든 데이터베이스와 테이블을 백업하세요. 이를 통해 언제든지 원래 상태로 복원할 수 있습니다.

 

단계 2: 데이터베이스 Character Set 및 Collation 변경

데이터베이스의 Character Set 및 Collation을 변경하려면 다음 쿼리를 사용합니다. 여기에 예시로 사용한 SQL문은 MySQL 8.0 이상에서 다국어 데이터 저장에 유리하고 ngram등 다양한 Full Text Search 방법을 사용할 수 있는 utf8mb4캐릭터셋의 utf8mb4_0900_ai_ci Collation을 기준으로 설명 합니다. utf8mb4_0900_ai_ci를 지원하지 않은 데이터베이스 버젼을 사용중이라면 utf8mb4_unicode_ci를 사용 해 주세요.

ALTER DATABASE `database_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci

여기서 database_name을 변경하려는 데이터베이스의 이름으로 바꿔야 합니다.

 

단계 3: 테이블 Character Set 및 Collation 변경

각 테이블마다 다른 Character Set 및 Collation을 사용하려면 각 테이블마다 아래의 SQL을 사용 해야 합니다.

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

 

하지만 이는 테이블 수가 많을경우 수동작업의 번거로움이 발생하므로 아래 SQL문을 이용하여 각 테이블의 SQL문을 생성하여 일괄 실행하는 방법으로 진행 해 주세요.

SELECT CONCAT('ALTER TABLE `', table_name, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;') AS sql_statements FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_type = 'BASE TABLE';

위 SQL문을 실행후 출력되는 ALTER TABLE SQL문을 전부 실행 해 주세요.

 

단계 4: 변경 내용 확인

데이터베이스와 테이블의 Character Set 및 Collation이 성공적으로 변경되었는지 확인하세요. SHOW CREATE DATABASE database_name;SHOW CREATE TABLE table_name; 쿼리를 사용하여 변경 내용을 확인할 수 있습니다.

안정적이고 저렴한 가상 서버(VPS) 안내

안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.

아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.

지금 무료로 Vultr $100 크레딧 선물 받기

 

Vultr 서비스 요약

  • VPS
    • 인스턴스
      • AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
    • 엣지
  • Block Storage
  • Object Storage (AWS S3 호환)
  • Firewall
  • Network
  • Load Balancers
  • Kubernetes
  • Databases
포스트 통계
지금 보고있는 포스트의 통계 데이터를 확인 해 보세요.
  • 총 조회수
    287
  • 최근 30일 조회수
    55
연관 포스트
코멘트 작성