Web taemy's Site
이전편 1회에 이어서..

처리순서를 간단히 정리하자면.(1회의 언급한 내용)
  1. 업그레이드 전 dump (euckr , utf8 확인)
  2. mysql 업그레이드 ... ( 3.x , 4.0.x -> 4.1.x or 5.x )
  3. set names euckr 명시 (euckr 환경인경우)
  4. table 의 Engine , Charset 를 조정.
  5. 덤프 데이터 restore
  6. 확인.

# 위 업그레이드 절차를 좀더 자세히 설명한다.
  1. 업그레이드 전 dump (euckr , utf8 확인)
    • 명령은 간단한다.(추가적인 옵션등은 검색)
      • mysqldump {DB_name} > DB_name.sql
      • mysqldump {DB_name} -u {user_name} -p{password} > DB_name.sql
      • mysqldump -F -n --add-drop-table {DB_name}> DB_name.sql

  2. mysql 업그레이드 ... ( 3.x , 4.0.x -> 4.1.x or 5.x )
    • 각 배포판, APM 배포판 별로 업그레이드 한다.
      • 업그레이드 방법은 별도로 찾아본다.
    • 위 단계에서 dump 파일이 있으니, 안심해도 된다.
    • 다시 롤백을 해야할 상황은 없길 바란다.

  3. set names euckr 명시 (euckr 환경인경우)
    • dump 파일을 euckr , utf8 에 맞게 iconv 같은 것으로 변환을 하는 경우도 있는데, 굳이 필요 없다.
    • 이전 환경이 euckr 이면 dump 파일 맨 위에 "set names euckr" , utf8 이면 "set names utf8" 이라고 한줄 추가해 준다.

  4. table 의 Engine , Charset 를 조정.
    • 4.0.x 를 덤프하면 create table 부분에  " ) Type=MyISAM " 이라고 되어 있을 것이다
    • 덤프파일에서 Engine , Charset 을 적절히 바꾼다.
      • " ) ENGINE=InnoDB DEFAULT CHARSET=euckr " 형태로 바꾸어 준다.
      • 각각 InnoDB/MyISAM , euckr/utf8 로 적절한 환경으로 바꾸어 준다.

  5. 덤프 데이터 restore
    • 위 수정된 덤프파일을 저장한다.
    • mysql {DB_name} < DB_name.sql 으로 복구한다.

  6. 확인(my.cnf 등의 옵션 조정)
    • 데이터가 이상없는지 확인.
    • euckr 환경인 경우
      • my.cnf 의 mysqld 항목에 init_connect = 'set names euckr' 를 추가한다.
    • utf8 환경이라도 init_connect = 'set names utf8' 이라고 넣어주는 것이 좋다.
      • php 에서 위 설정을 해주지 않으면 latin1 으로 기본 설정된다.
    • chartset 에 관한 부분은 추후 더 정리할 예정.


# 업그레이드시 주의사항
  1. 테이블 charset 변경시 : alter table {테이블명} convert to character set utf8 명령으로 하면.
    • multibyte 를 사용하는 db 의 경우 필드 값이 반으로 줄어 버림
    • 그래서 dump 로 처리하는 것이 좋음
    • 덤프파일의 create table 항목의 charset 을 변경하는 방식으로 처리.
  2. 4.0.x 에서 dump 시 euckr , utf8 인지 확인
    • euckr 인 경우 덤프파일의 맨위에 set names euckr , utf8 은 set names utf8 를 삽입
    • 이부분만 주의하면 무리없이 진행가능.
  3. php 에서는 기본이 latin1 으로 잡힘
    • my.cnf 에 default-character-set 을 설정확인.
    • init_connect ='set names euckr' 최종 값이 설정됨.
    • init_connect 가 php 의 설정에 영향을 미침.
  4. dump 파일의 ENGINE , CHARSET 을 변경가능 (InnoDB , MyISAM) , (euckr , utf8)

ps. 좀더 자세한 설명이지만, 배포판별 mysql 업그레이드 방법, 세부 mysql 옵션등의 설명은 생략하였다.
   더 자세한 설명은 메뉴얼을 참조한다.

이올린에 북마크하기(0) 이올린에 추천하기(0)
많은 웹사이트들이 APM - Apache + PHP + Mysql 조합으로 운영되고 있다.

Apache 는 1.x 버전에서 2.x 로의 버전 업그레이드가 되었고,
PHP 는 4.x , 5.x 버전으로 업그레이드가 되고 있다. 이제 6 버전이 개발중에 있다.

mysql 의 버전은 3.x 버전을 거쳐, 4.0.x , 4.1.x , 5.x  버전으로 업그레이드가 되었다.
그런데, mysql 의 버전 업그레이드를 하면서 내부적인 변화때문에 데이터의 호환성, 변경 문제를 겪게 되었다.
크게 (3.x ,4.0.x)  와  (4.1.x ,5.x) 의 두 그룹 사이의 업그레이드에 주의하면 된다.

한글 환경을 사용하는 국내에서는 charset(euckr , utf8) 에 조금만 주의를 하면
어렵지 않게 업그레이드 할 수 있다.

약간은 철지난 이슈이긴 하지만, 몇가지 주의사항 및
쉽게 업그레이드 할 수 있는 방법을 정리하고자 한다.

먼저 자신의 환경을 파악한다. euckr 환경인지, utf8 환경인지.
업그레이드시 euckr 환경으로 할지, utf8 환경으로 할지 등을 점검하고 업그레이드 한다.

가장 흔한 조합은
1. euckr 환경에서 사용하다가 업그레이드 euckr 환경을 계속 유지.
2. euckr 환경에서 utf8 환경으로 업그레이드
3. 테이블이 latin1 형식에서 euckr , utf8 환경으로 업그레이드
이 정도일 듯 하다.

가장 쉽고, 최선의 방법은 dump 후 restore 하는 방법이다.(당연하다고? ^^ )
아무튼 무작정 업그레이드 시도하기전에 백업은 필수!!

처리순서를 간단히 정리하자면.
  1. 업그레이드 전 dump (euckr , utf8 확인)
  2. mysql 업그레이드 ... ( 3.x , 4.0.x -> 4.1.x or 5.x )
  3. set names euckr 명시 (euckr 환경인경우)
  4. table 의 Engine , Charset 를 조정.
  5. 덤프 데이터 restore
  6. 확인.

구체적인 방법은 다음회에...(2회 보기)

ps. 총 3-4 회에 걸쳐 정리할 예정.

이올린에 북마크하기(0) 이올린에 추천하기(0)