mysql 환경을 utf8(기타) 환경 으로 이전하기..(덤프에서 넣는것까지..) 정보
mysql 환경을 utf8(기타) 환경 으로 이전하기..(덤프에서 넣는것까지..)
본문
기본적으로 아시는 분들도 계시겠지만..
mysql 언어셋에 관련해서 혹시나 모르시는 분들을 위해서 간단하게 정리해서 올립니다.
※ 아래의 내용은 mysql 4.1 이상 버젼부터 정상적으로 적용됩니다.
1. 가장 먼저 mysql로 접속 한 후 use {dbname};
show variables like 'c%'; 로 확인을 합니다.
+--------------------------+--------------
| Variable_name | Value
+--------------------------+-------------
| character_set_client | euckr
| character_set_connection | euckr
| character_set_database | euckr
| character_set_results | euckr
| character_set_server | euckr
가장 중요한 것은..
character_set_client 와 character_set_connection 과
character_set_database의 속성을 잘 파악하여야 한다는 것입니다.
2.기존 DB를 Dump받습니다.
mysqldump -u{username} -p{password} {dbname} --default-character-set ecukr > {dump}.sql
이때 Dump 받는 SQL은 database의 chracter set이 아니라,
client가 실제로 사용한 character set. 즉 이경우에는 ecukr 로 저장되는게 맞습니다.
3. DUMP되어있는 sql 파일을 열어서
CREATE DATABASE ..... DEFAULT CHARSET=euckr; 으로 되어 있는 놈을
CREATE DATABASE ..... DEFAULT CHARSET=utf8; 로 변경합니다.
4. MySQL로 로그인 하여 새로 부어줄 DATABASE를 생성합니다.
CREATE DATABASE {utf8-dbname} DEFAULT CHARACTER SET utf8;
이렇게 하므로써, 다시 생성될 TABLE의 CHARSET도 utf8로 맞출 수 있게 됩니다
5. dump 한 data를 부어넣습니다.
mysql -u{username} -p{password} {utf8-dbname} < {dump}.sql
===========================
모두 끝난 다음의 절차 - my.cnf 체크
참고만 하시고 굳이 하지 않으셔도 됩니다.
[client]
default-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
로 바꾸어 주고
mysql 를 restart 합니다.
아무쪼록 소중한 DATA 깨먹는 일 없도록 하시기 바라면서 이만 줄이겠습니다.
1
댓글 6개
