사용자 도구

사이트 도구


database:mysql:charset

문서의 이전 판입니다!


MySQL charset encoding

기본 설정

  • UTF-8 설정 on Ubuntu : /etc/mysql/conf.d/encoding.cnf
    #문자셋 지정
    [client]
    character-set=utf8
    
    [mysqld]
    init_connect=SET collation_connection = utf8_general_ci
    init_connect=SET NAMES utf8
    default-character-set=utf8
    character-set-server=utf8
    collation-server=utf8_general_ci
  • 이후 service mysql restart

DB 테이블 생성시 문자셋 지정

참조 :MySQL and UTF-8

Database:
(CREATE | ALTER) DATABASE ... DEFAULT CHARACTER SET utf8

Table:
(CREATE | ALTER) TABLE ... DEFAULT CHARACTER SET utf8

현재 문자셋 정보 보기

show variables like 'c%';

결과 –>

character_set_client : utf8
character_set_connection : utf8
character_set_database : utf8
character_set_results : utf8
character_set_server : utf8
character_set_system : utf8
character_sets_dir : /usr/share/mysql/charsets/
collation_connection : utf8_general_ci
collation_database : utf8_general_ci
collation_server : utf8_general_ci

이미 생성된 데이터베이스의 문자셋 바꾸기

-- 테이블의 문자셋 정보 확인.
INFORMATION_SCHEMA.TABLES or SHOW CREATE TABLE [TABLENAME];
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;

이미 데이터가 들어간 테이블의 문자셋 변환

create table test (merong varchar(20) collate latin1_general_ci);

-- 이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면
-- 다음처럼 해야 합니다.

alter table test modify merong binary(100);
alter table test modify merong varchar(20) collate euckr_korean_ci;

-- binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야
-- 합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.

참조 : MySQL 4.1.8 RPM 설치시 한글설정. Database.sarang.net

database/mysql/charset.1338705223.txt.gz · 마지막으로 수정됨: 2012/06/03 15:33 저자 kwon37xi