[MySQL] MySQL 4.1.x 문자셋, 인코딩, UTF-8 (2009/11/03 수정)
로빈아빠
본문
기존 버전에서는 "euc-kr"로 표기되는 문자셋이 "euckr"로 바뀌었다.
/etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
JDBC Driver URL
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8
현제 문자셋 정보 보기
mysql> show variables like 'c%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | euckr |
| character_set_connection | euckr |
| character_set_database | euckr |
| character_set_filesystem | binary |
| character_set_results | euckr |
| character_set_server | euckr |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection | euckr_korean_ci |
| collation_database | euckr_korean_ci |
| collation_server | euckr_korean_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 10 |
+--------------------------+----------------------------------------+
이미 생성된 DATABASE의 문자셋 바꾸기
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;
이미 데이터가 들어간 테이블의 문자셋 변환
mysql> create table test (merong varchar(20) collate latin1_general_ci);
이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면
다음처럼 해야 합니다.
mysql> alter table test modify merong binary(100);
mysql> alter table test modify merong varchar(20) collate euckr_korean_ci;
binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야
합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.
mysql> flush privileges; 명령어를 실행해야 권한이 변경된 사실을 mysql에 알린다.
참조 : Database.sarang.net에 올라온 글
기존 EUC-KR 데이타를 4.1.x로 옮기기
http://okjsp.pe.kr/bbs?act=VIEW&seq=43402&bbs=bbs2&keyfield=subject&keyword=mysql&pg=0
자료인용 : http://cafe.naver.com/otoio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=360
/etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
JDBC Driver URL
jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=UTF8
현제 문자셋 정보 보기
mysql> show variables like 'c%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | euckr |
| character_set_connection | euckr |
| character_set_database | euckr |
| character_set_filesystem | binary |
| character_set_results | euckr |
| character_set_server | euckr |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection | euckr_korean_ci |
| collation_database | euckr_korean_ci |
| collation_server | euckr_korean_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 10 |
+--------------------------+----------------------------------------+
이미 생성된 DATABASE의 문자셋 바꾸기
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;
이미 데이터가 들어간 테이블의 문자셋 변환
mysql> create table test (merong varchar(20) collate latin1_general_ci);
이렇게 만들어진 테이블에 한글 데이터를 넣은 후 필드를 euckr 로 변경하려면
다음처럼 해야 합니다.
mysql> alter table test modify merong binary(100);
mysql> alter table test modify merong varchar(20) collate euckr_korean_ci;
binary 로 바꾸면 문자셋 특성이 사라지기 때문에 이런 변환과정을 거쳐야
합니다(메뉴얼에 의하면). 그냥 바꾸면 문자들이 손상됩니다.
mysql> flush privileges; 명령어를 실행해야 권한이 변경된 사실을 mysql에 알린다.
참조 : Database.sarang.net에 올라온 글
기존 EUC-KR 데이타를 4.1.x로 옮기기
http://okjsp.pe.kr/bbs?act=VIEW&seq=43402&bbs=bbs2&keyfield=subject&keyword=mysql&pg=0
자료인용 : http://cafe.naver.com/otoio.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=360
관련링크
댓글목록
등록된 댓글이 없습니다.