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개

